我对tensorflow有一个非常基本的疑问。
我添加了一个变量say' var'在卷积层,我想在训练期间用渐变更新这个变量(' var'),比如我们的权重和偏差都会更新。 我已将此变量添加到“可训练的参数”中。但它没有更新。有人可以阐明如何训练变量吗?
答案 0 :(得分:2)
优化过程的重点是更新损失函数所依赖的变量,以减少损失的价值。
loss
和loss
所依赖的任何变量都不依赖于var
(换句话说,var
未用于任何导致计算{{1}的计算中因此,loss
相对于loss
的渐变未定义,优化程序var
未更新var
。
~~~
编辑后答案:如果您有一组变量back_prop
并且想要计算所有这些变量的L2正则化项,您可以通过以下方式进行:
param_list
在将L2_loss添加到主要损失之前,会将L2_loss乘以regularization parameter lambda:
# get the list of variables to calculate L2 loss over
param_list = tf.get_collection('var_params')
# a list of L2 regularization terms for each variable in param_list
L2_lst = [tf.nn.l2_loss(param) for param in param_list]
# Total L2 loss
L2_loss = tf.add_n(L2_lst)