如何在tensorfow中训练变量以及权重和偏差

时间:2018-05-07 16:23:27

标签: tensorflow

我对tensorflow有一个非常基本的疑问。

我添加了一个变量say' var'在卷积层,我想在训练期间用渐变更新这个变量(' var'),比如我们的权重和偏差都会更新。 我已将此变量添加到“可训练的参数”中。但它没有更新。有人可以阐明如何训练变量吗?

1 个答案:

答案 0 :(得分:2)

优化过程的重点是更新损失函数所依赖的变量,以减少损失的价值。 lossloss所依赖的任何变量都不依赖于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)