我有一个神经网络,该网络具有两个分别包含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})
答案 0 :(得分:1)
在优化程序上调用 sess.run (您正在做什么),预期会得到 None ,因为此操作不会产生任何值,而是适用于最小化成本函数的值,换句话说,对其进行优化。
为了打印成本,您的代码应为:
sess.run([optimizer, cost], feed_dict={X: X_train, Y: y_train})[1]