计算损失函数时。我可以手动计算损失,如
Loss = tf.reduce_mean(tf.square(np.array(Prediction) - np.array(Y)))
然后使用Adam Optimizer优化此损失
答案 0 :(得分:1)
没有。 张量流损失函数通常接受张量作为输入并且还输出张量。所以np.array()不起作用。
对于CNN,你通常会遇到诸如交叉熵,softmax corss-entropy,sigmoid cross-entropy等损失函数。这些函数已经内置在tf.losses模块中。所以你可以直接使用它们。 您尝试应用的损失函数看起来像均方损失。这也是在tf.losses中构建的。 tf.losses.mean_squared_error。
话虽如此,我还使用手工编码公式实现了一些损失函数,如交叉熵,如: -tf.reduce_mean(tf.reduce_sum(targets * logProb))。只要输入目标和 logProb 计算为张量而不是numpy数组,这同样可以正常工作。