slim.arg_scope()函数解析(最清晰的解释)

欢迎关注WX公众号:【程序员管小亮】

Tensorflow-slim作为一种轻量级的tensorflow库,使得模型的构建,训练,测试都变得更加简单,其主要目的是来做所谓的“代码瘦身”。

在slim库中对很多常用的函数进行了定义,slim.arg_scope()是slim库中经常用到的函数之一。

slim.arg_scope常用于为tensorflow里的layer函数提供默认值,以使构建模型的代码更加紧凑苗条(slim)。

函数的定义如下:

def arg_scope(list_ops_or_scope, **kwargs)
 list_ops_or_scope:要用的函数的作用域,可以在需要使用的地方用@add_arg_scope 声明
 **kwargs: keyword=value 定义了list_ops中要使用的变量
  • list_ops_or_scope: 操作列表或作用域列表
  • kwargs: 参数,以keyword=value方式显示

也就是说可以通过这个函数将不想重复写的参数通过这个函数自动赋值。

import tensorflow.contrib.slim as slim
@slim.add_arg_scope

def g(name, add_arg):
    print("name:", name)
    print("add_arg:", add_arg)

with slim.arg_scope([g], add_arg='this is add'):
    g('test')

#结果:
#name: test
#add_arg: this is add

使用slim.arg_scope()有两个步骤:

  1. 使用@slim.add_arg_scope修饰目标函数
  2. 用 slim.arg_scope()为目标函数设置默认参数.
import tensorflow as tf
slim =tf.contrib.slim

#用@slim.add_arg_scope修饰目标函数fun1()
@slim.add_arg_scope
def fun1(a=0,b=0):
    return (a+b)

#用slim.arg_scope()为目标函数fun1()设置默认参数
with slim.arg_scope([fun1],a=20):
    x=fun1(b=20)
    print(x)
> 40

python课程推荐。
在这里插入图片描述

你可能感兴趣的:(#,TensorFlow)