在计算损失函数时。我可以手动计算损失吗?
损失=tf.reduce_mean(tf.square(np.array(预测)-np.array(Y)
然后使用Adam优化器优化这个损失
发布于 2018-03-03 16:12:46
不是的。Tensorflow损失函数通常接受张量作为输入,并输出张量。这样np.array()就不能工作了。
在CNN的情况下,通常会遇到诸如交叉熵、softmax corss-熵、sigmoid交叉熵等损失函数,这些函数已经内置在tf.losses模块中。所以你可以直接使用它们。你试图应用的损失函数看起来像一个均方损失。这也是在tf.losses中构建的。tf.losses.mean_squared_error。
尽管如此,我还使用手工编码公式(如:-tf.reduce_mean(tf.reduce_sum(targets *logProb)实现了一些损失函数,比如交叉熵。只要输入目标和logProb被计算为张量而不是numpy数组,这也同样好。
发布于 2018-03-03 15:58:43
不,实际上您需要使用张量变量来表示损耗,而不是使用numpy.array(np.array(Prediction))。
因为,tensorflow,将在tensorflow引擎中eval这些tensors。
https://stackoverflow.com/questions/49085619
复制相似问题