Tensorflow成本等于无

时间:2019-05-22 02:10:06

标签: tensorflow machine-learning neural-network

我有一个神经网络,该网络具有两个分别包含6个节点的隐藏层,并具有11个节点的输入和一个输出(二进制分类):

L1 = tf.nn.sigmoid(tf.matmul(X, W1) + b1)
L2 = tf.nn.sigmoid(tf.matmul(L1, W2) + b2)
hy = tf.nn.sigmoid(tf.matmul(L2, W3) + b3)

我的成本函数定义如下,其中y是占位符:

cost = tf.reduce_mean(-Y * tf.log(hy) - (1 - Y) * tf.log(1 - hy))

我的优化器:

optimizer = tf.train.RMSPropOptimizer(learning_rate).minimize(cost)

似乎一切定义都很好,但是当我在会话中运行它时,成本函数仍然没有价值。

我的会话:

sess.run(optimizer, feed_dict={X: X_train, Y: y_train})

1 个答案:

答案 0 :(得分:1)

在优化程序上调用 sess.run (您正在做什么),预期会得到 None ,因为此操作不会产生任何值,而是适用于最小化成本函数的值,换句话说,对其进行优化。

为了打印成本,您的代码应为:

sess.run([optimizer, cost], feed_dict={X: X_train, Y: y_train})[1]