TensorFlow slim中正则化的使用
关于slim中的正则化使用,以L2正则化为例:
# 构建网络时候添加l2正则化
with slim.arg_scope([slim.conv2d], weights_regularizer=slim.l2_regularizer(0.0001)):
net = slim.conv2d(inputs, 64, 5, 2, padding='SAME', scope='conv_1')
net = ...
训练时需要手动将正则化添加到loss中,假设自定义的loss为my_loss:
reg = tf.add_n(slim.losses.get_regularization_losses())
total_loss = my_loss + reg
...
train_op = tf.train.MomentumOptimizer(lr, 0.9).minimize(total_loss , global_step=global_step)
...