我有一个模型,该模型使用大量的ops来损失l2。最终,这超过了mul和增加操作的数量。我想知道是否可以删除它们?如果不是,为什么
答案 0 :(得分:0)
推理是指使用受过训练的深度学习算法进行预测的过程。因此,在这段时间内,网络会执行分类,识别和处理新输入的信息。
与网络训练开始之前一样,在卷积和完全连接的层中的权重被赋予随机值。
然后,在训练过程中,损失层会根据实际值连续检查全连接层的猜测,以最大程度地减小猜测与实际值之间的差异。
损耗层通过使用loss function
来调整卷积层和完全连接层中的权重来实现此目的,否则我们可能会遇到Overfitting
或Underfitting
问题。没有损失功能,很难衡量网络/模型的性能。
通常,在大多数情况下,首选L2损失函数。
我想,如果您是在模型中手动计算L2 loss
,我建议使用以下Tensorflow函数
def loss(target_y, predicted_y):
return tf.reduce_mean(tf.square(target_y - predicted_y))
此处显示了如何使用L2 loss
在TF 1.x中执行Session
%tensorflow_version 1.x
import tensorflow as tf
graph = tf.Graph()
session = tf.InteractiveSession(graph=graph)
y = tf.constant([[1,2],[3,4]],dtype= tf.float32)
p = tf.constant([[0,1],[4,5]],dtype= tf.float32)
mse=tf.nn.l2_loss(y - p)
mse_eval= session.run(mse)
print(mse_eval)
session.close()
输出:
2.0