我有一个神经网络,有两个隐藏层,每个隐藏层有 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)
似乎一切都定义得很好,但当我在 session 中运行它时,我仍然没有得到成本函数的值。
我的 session :
sess.run(optimizer, feed_dict={X: X_train, Y: y_train})
最佳答案
在优化器上调用sess.run(你正在做的事情),预计会给出None,因为此操作不会产生任何值,而是为了最小化成本函数的值,换句话说,优化它。
为了打印成本,您的代码应该是:
sess.run([optimizer, cost], feed_dict={X: X_train, Y: y_train})[1]
关于Tensorflow 成本等于无,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56248415/