python - Tensorflow - 使用 tf.contrib.layers.conv2d 时,我可以设置权重和偏差的名称吗?
问题描述
张量流版本:1.10.1
我想将预训练网络中卷积层的学习权重和偏差转移到新网络。
但是,因为我使用conv2d
了 api,所以检查点文件中的权重和偏差自动命名为Conv/weights
, Conv/biases
, Conv_1/weights
, Conv_1/biases
,Conv_2/weights
等Conv_2/biases
。
但是,这些名称与我的代码中的变量名称不一致。例如Conv/weights
,Conv/biases
属于C2
我的代码中命名的变量,所以我想将它们命名为C2/weights
, C2/biases
。
我知道对于由 定义的变量get_variable
,我可以将它们的名称设置为我想要的任何字符串my_varibale = tf.get_variable("whatever_name_I_want",shape,dtype,initializer)
,其中my_variable
命名为"whatever_name_I_want"
。
但是,当涉及(或ormy_layer = tf.contrib.layers.conv2d(params_blabla)
中的等效 api )时,我不知道如何命名.tf.nn
tf.layers
my_layer
那么,有可能做到这一点吗?如果可能的话,怎么做?
解决方案
对于tf.layers.conv2d和tf.nn.conv2d,您可以传递一个名为name
.
例子:
my_conv1 = tf.layers.conv2D(...., name='my_conv1')
my_conv2 = tf.layers.conv2D(...., name='my_conv2 ')
对于tf.contrib.layers.conv2d,该参数scope
用于命名您的图层。
例子:
with tf.name_scope('my_conv1') as scope:
my_conv1 = tf.contrib.layers.conv2d(..., scope=scope)
结果:
在所有情况下,您的权重和偏差都被命名为 examplemy_conv1/weights
和my_conv1/bias
。
推荐阅读
- javascript - 从 React 父级清除无线电输入
- r - 减小图例字体大小,在 ylabel 中添加百分比符号并在 R 雷达图中添加自定义轴?
- mongodb - 将文档数组中的所有元素与输入数组匹配
- java - Java泛型多类型边界擦除,我们应该将哪些类/接口放在边界列表的开头
- python - 提交后从 kivymd 清除 MDTextField
- ruby-on-rails - 如何从 API 中检索 URL 的图像并将其显示在我的视图中
- javascript - 如何在角度打字稿中重用逻辑进行升序和降序排序
- sql - COGNOS:在 Cognos 中将 SQL 日期提示转换为日期提示
- c# - 手动处理装配加载
- php - 如何在没有性能开销的情况下将 Xdebug 模块加载到 PHP 中?