zoukankan      html  css  js  c++  java
  • 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课程推荐。
    在这里插入图片描述

  • 相关阅读:
    一个简单的aJax——后台用servlet技术
    js获取项目根路径
    在SpringMVC利用MockMvc进行单元测试
    java.lang.NoSuchMethodError: javaxservlet.http.HttpServletRequest.isAsyncStarted()Z
    保利威视点播集成
    微信登录后返回微信名等信息
    极光推送发送控制/别名/取值
    每天首次登陆记录设备信息
    获取APK签名
    权限管理AppOpsManager
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302853.html
Copyright © 2011-2022 走看看