我正在实施一个简单的2层GAN(生成对抗网络),但我遇到了实施问题。我得到值错误(ValueError:设置带有序列的数组元素。)并查看具有相同错误的其他问题,我认为问题是在session.run中使用feed_dict时numpy ndarray和Tensorflow张量之间的类型问题( )。但是,我真的无法找到导致此错误的原因。我试过转换张量 - > ndarray,反之亦然,但这些方法似乎都不起作用。错误消息指向行Z: np.random.uniform(-1., 1., size=[mini_batch, Z_dim])
(在最后一个代码块中)。
mini_batch = 128
Z_dim = 100
Z = tf.placeholder(tf.float32, shape=[None, 100])
...
def generator(z):
G_h1 = tf.nn.relu(tf.matmul(z, G_W1) + G_b1)
G_log_prob = tf.matmul(G_h1, G_W2) + G_b2
G_prob = tf.nn.sigmoid(G_log_prob)
return G_prob
def discriminator(x):
D_h1 = tf.nn.relu(tf.matmul(x, D_W1) + D_b1)
D_logit = tf.matmul(D_h1, D_W2) + D_b2
D_prob = tf.nn.sigmoid(D_logit)
return D_prob, D_logit
...
G_sample = generator(Z)
D_real, D_logit_real = discriminator(X)
D_fake, D_logit_fake = discriminator(G_sample)
D_loss = -tf.reduce_mean(tf.log(D_real) + tf.log(1.0 - D_fake))
G_loss = -tf.reduce_mean(tf.log(D_fake))
D_solver = tf.train.AdamOptimizer(learning_rate).minimize(D_loss, var_list=theta_D)
...
_, D_loss_curr = sess.run([D_solver, D_loss], feed_dict={
X: fake_tweets,
Z: np.random.uniform(-1., 1., size=[mini_batch, Z_dim])
})
我正在尝试训练发电机制作假推文。