今天我发现一个tensorlfow框架--slim
它包装了一些基本的tensorflow的操作:
比如说卷积:
layers=sli.conv2d(self.X,num_outputs=32,kernel_size=1,stride=[1,1])
比如说标准化处理
Bn1=sli.batch_norm(Fist_op)
还有
weight=sli.variable(name='weights3',shape=[784,10],initializer=tf.truncated_normal_initializer(stddev=0.1))
#以及对这些参数进行共享
scopes:除了tensorflow中的name_scope和variable_scope, tf.slim新增了arg_scope操作,这一操作符可以让定义在这一scope中的操作共享参数,即如不制定参数的话,则使用默认参数。且参数可以被局部覆盖。使得代码更加简洁,如下:
with slim.arg_scope([slim.conv2d], padding='SAME',
weights_initializer=tf.truncated_normal_initializer(stddev=0.01)
weights_regularizer=slim.l2_regularizer(0.0005)):
net = slim.conv2d(inputs, 64, [11, 11], scope='conv1')
net = slim.conv2d(net, 128, [11, 11], padding='VALID', scope='conv2')
net = slim.conv2d(net, 256, [11, 11], scope='conv3')