前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tf.contrib.framework.arg_scope

tf.contrib.framework.arg_scope

作者头像
狼啸风云
修改2022-09-04 21:44:34
1.4K0
修改2022-09-04 21:44:34
举报
文章被收录于专栏:计算机视觉理论及其实现

存储给定list_ops集合的默认参数。

代码语言:javascript
复制
tf.contrib.framework.arg_scope(
    list_ops_or_scope,
    **kwargs
)

参数:

  • list_ops_or_scope:为包含当前范围的字典设置参数范围的操作的列表或元组。当list_ops_or_scope是dict时,kwargs必须为空。当list_ops_or_scope是一个列表或元组时,其中的每个op都需要用@add_arg_scope修饰才能工作。
  • **kwargs: keyword=值,它将为list_ops中的每个操作定义默认值。所有的ops都需要接受给定的一组参数。

范围:

  • current_scope是{op: {arg: value}}的字典

可能产生的异常:

  • TypeError: if list_ops is not a list or a tuple.
  • ValueError: if any op in list_ops has not be decorated with @add_arg_scope.

例:

在定义卷积层时,可能总是使用相同的填充类型和相同的初始化器,甚至可能使用相同的卷积大小。对于池化,可能也总是使用相同的2x2池大小,等等。arg_scope是一种避免反复向相同的层类型提供相同参数的方法。

代码语言:javascript
复制
from third_party.tensorflow.contrib.layers.python import layers
  arg_scope = tf.contrib.framework.arg_scope
  with arg_scope([layers.conv2d], padding='SAME',
                 initializer=layers.variance_scaling_initializer(),
                 regularizer=layers.l2_regularizer(0.05)):
    net = layers.conv2d(inputs, 64, [11, 11], 4, padding='VALID', scope='conv1')
    net = layers.conv2d(net, 256, [5, 5], scope='conv2')

conv2d的第一个调用将如下所示:

代码语言:javascript
复制
layers.conv2d(inputs, 64, [11, 11], 4, padding='VALID',
                  initializer=layers.variance_scaling_initializer(),
                  regularizer=layers.l2_regularizer(0.05), scope='conv1')    

conv2d的第二个调用也将使用arg_scope的默认填充:

代码语言:javascript
复制
layers.conv2d(inputs, 64, [11, 11], 4, padding='VALID',
              initializer=layers.variance_scaling_initializer(),
              regularizer=layers.l2_regularizer(0.05), scope='conv1')    

如何重用arg_scope的例子:

代码语言:javascript
复制
with arg_scope([layers.conv2d], padding='SAME',
                 initializer=layers.variance_scaling_initializer(),
                 regularizer=layers.l2_regularizer(0.05)) as sc:
    net = layers.conv2d(net, 256, [5, 5], scope='conv1')

  with arg_scope(sc):
    net = layers.conv2d(net, 256, [5, 5], scope='conv2')
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年08月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档