tensorflow学习(7):slim简化池化层代码

  1. 直接使用tensorflow原始的API实现卷积层
with tf.variable_scope(scope_name):
	weights = tf.get_variable("weight",...)
	biases = tf.get_variable("bias",...)
	conv = tf.nn.conv2d
	relu = tf.nn..relu(tf.nn.bias_add(conv,biases))

然而,在复现经典网络架构的时候,比如Googlenet这种动不动几十层上百层的网络,这么写的话,代码量会很大,冗余。为此,tensorflow提供了tensorflow-slim实现卷积层。通过tensorflow-slim可以在一行中实现一个卷积层的前向传播算法。其中,slim.conv2d函数的3个参数是必填的:
第一个参数是输入节点矩阵
第二个参数是当前卷积层过滤器的深度
第三个参数是过滤器的尺寸
另外,可选的参数有过滤器移动的步长、是否使用全0填充,激活函数的选择以及变量的命名空间等。
如:
slim = tf.contrib.slim
net = slim.conv2d(input, 32, [3,3])

另外,slim.arg_scope函数可用于设置默认的参数取值。slim.arg_scope函数的第一个参数是一个函数列表,在这个列表中的函数将使用默认的参数取值。比如通过下面的定义,调用slim.conv2d(net, 320, [1,1]) 函数时会自动加上stride = 1 和padding = ‘SAME’ 的参数。如果在函数调用时指定了stride, 那么这里的默认值就不再使用。
with slim.arg_scope([slim.conv2d, slim.max_pool2d, ],stride = 1, padding = ‘SAME’):
net = slim.conv2d(input, 32, [3,3])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值