在学习tensorflow网络框架中,碰到获取一层神经网络的权重定义函数,代码如下:
def get_weight(shape, lambda):
var=tf.Variable(tf.random_normal(shape),dtype=tf.float32)
#add_to_collection函数将这个新生成变量的L2正则化损失项加入集合,这个函数的第一个参数'losses'是集合的名字,
tf.add_to_collection('losses',tf.contrib.layers.l2_regularizer(lambda)(var)) #第二个参数是要加入这个集合的内容
return var #返回生成的变量
在python3.7的环境下运行报错:
原因:lambda是python3.7中的关键字,不能作为函数参数,将其修改为其他非关键字名称即可。