scope 命名方法

scope能让你命名变量的时候轻松很多,一下讨论TensorFlow中的两种定义scope的方式。

tf.name_scope()

在TensorFlow当中有两种途径生成变量variable,一种是tf.get_variable(),另一种是tf.variable()。如果在tf.name_scope()的框架下使用这两种方式,结果会如下所示:

可以看出使用 tf.Variable() 定义的时候, 虽然 name 都一样, 但是为了不重复变量名, Tensorflow 输出的变量名并不是一样的. 所以, 本质上 var2, var21, var22 并不是一样的变量. 而另一方面, 使用tf.get_variable()定义的变量不会被tf.name_scope()当中的名字所影响.

tf.variable_scope()

如果想要达到重复利用变量的效果, 我们就要使用 tf.variable_scope(), 并搭配 tf.get_variable() 这种方式产生和提取变量. 不像 tf.Variable() 每次都会产生新的变量, tf.get_variable() 如果遇到了同样名字的变量时, 它会单纯的提取这个同样名字的变量(避免产生新变量). 而在重复使用的时候, 一定要在代码中强调 scope.reuse_variables(), 否则系统将会报错, 以为你只是单纯的不小心重复使用到了一个变量.

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`template`标签的`slot-scope`属性用于定义一个作用域插槽(scoped slot),是Vue.js的一个重要概念,用于在父组件向子组件传递数据和逻辑。在Vue.js 2.6.0版本之后,`slot-scope`被重命名为`v-slot`。 作用域插槽允许你在父组件定义一个插槽,并且可以在子组件使用该插槽来访问父组件的数据和方法。通常情况下,插槽只能访问子组件的数据,而通过作用域插槽,父组件可以将数据传递给子组件并进行处理。 使用`template`标签时,可以通过`slot-scope`或`v-slot`属性定义作用域插槽的名称,在其内部使用`slot-scope`属性来访问父组件的数据和方法。 以下是一个示例,展示了如何使用作用域插槽: ```html <template> <div> <child-component> <template v-slot:default="scope"> <p>父组件传递的数据: {{ scope.data }}</p> <button @click="scope.method">点击我执行父组件方法</button> </template> </child-component> </div> </template> ``` 在上面的示例,父组件通过`v-slot:default="scope"`或`slot-scope="scope"`将作用域插槽命名为`default`,并将父组件的数据和方法通过`scope`对象传递给子组件。子组件可以在插槽内容通过`scope`对象访问父组件的数据和方法,如`scope.data`和`scope.method`。 请注意,`slot-scope`属性已经被重命名为`v-slot`,因此在新的Vue.js版本,应该使用`v-slot`来定义作用域插槽。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值