小trick: 对于使用tf.layers建立的神经网络,如果想要对loss函数进行正则话,可以采用如下方式[1]:
但是该方法不适用于编程者自己定义不同层的正则化。
l2 = tf.add_n([tf.nn.l2_loss(var) for var in tf.trainable_variables()])
注意:本文中tensorflow ver=1.8
0. 写作目的
好记性不如烂笔头。及时更新。
1. 不同层的介绍
tf.nn是最基础的层,如tf.nn.conv2d, tf.nn.max_pool等,需要编程者自己定义权重。下面给出自己定义的Conv2d函数:
(注意: 这里统一使用tf.variable_scope()来管理范围)
def myConv2d(input_tensor, conv_size, stride_size ,
output_channel, name, regu=None, padding='SAME', act=tf.nn.relu, reuse=False):
with tf.variable_scope(name, reuse=reuse):
inpu