GAN实现_ ValueError:使用序列设置数组元素

时间:2017-07-17 20:13:50

标签: python numpy tensorflow neural-network

我正在实施一个简单的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])
    })

我正在尝试训练发电机制作假推文。

0 个答案:

没有答案