如果具有以下小型CNN(属于GAN的一部分)
def discriminator_v2(input, is_train, reuse=False):
c2, c4 = 16,32
with tf.variable_scope('dis') as scope:
if reuse:
scope.reuse_variables()
#Layer1
conv1 = tf.layers.conv2d(input, c2, kernel_size=[5, 5], strides=[2, 2], padding="SAME",
kernel_initializer=tf.truncated_normal_initializer(stddev=0.02),
name='conv1')
bn1 = tf.contrib.layers.batch_norm(conv1, is_training = is_train, epsilon=1e-5, decay = 0.9, updates_collections=None, scope = 'bn1')
act1 = lrelu(conv1, n='act1')
#Layer2
conv2 = tf.layers.conv2d(act1, c4, kernel_size=[5, 5], strides=[2, 2], padding="SAME",
kernel_initializer=tf.truncated_normal_initializer(stddev=0.02),
name='conv2')
bn2 = tf.contrib.layers.batch_norm(conv2, is_training=is_train, epsilon=1e-5, decay = 0.9, updates_collections=None, scope='bn2')
act2 = lrelu(bn2, n='act2')
dim = int(np.prod(act2.get_shape()[1:]))
fc1 = tf.reshape(act2, shape=[-1, dim], name='fc1')
w2 = tf.get_variable('w2', shape=[fc1.shape[-1], 1], dtype=tf.float32,
initializer=tf.truncated_normal_initializer(stddev=0.02))
b2 = tf.get_variable('b2', shape=[1], dtype=tf.float32,
initializer=tf.constant_initializer(0.0))
logits = tf.add(tf.matmul(fc1, w2), b2, name='logits')
return logits
如果我使用以下代码运行代码:
discriminator_v2(image, is_train, reuse=True)
我收到以下错误
ValueError: Trying to share variable dis/conv1/kernel, but specified shape (5, 5, 8, 8) and found shape (5, 5, 3, 8).
输入图像的形状为(?,8,8,8)