Tensorflow:如何从从 Caffe 导入的模型访问变量?
Tensorflow: How to access Variables from a model imported from Caffe?
我正在使用 tensorflow-deeplab-resnet model which transfers the Resnet model implemented in Caffe to tensorflow using caffe-tensorflow。
我想知道如何访问从 Caffe 导入的模型中的各个变量,以便检查出了什么问题。
我试过了
allTrainVars = tf.trainable_variables()
for f in allTrainVars:
print f.name
输出
[...]
res5c_branch2c/weights:0
bn5c_branch2c/scale:0
bn5c_branch2c/offset:0
bn5c_branch2c/mean:0
bn5c_branch2c/variance:0
fc1_voc12_c0/weights:0
fc1_voc12_c0/biases:0
fc1_voc12_c1/weights:0
fc1_voc12_c1/biases:0
fc1_voc12_c2/weights:0
fc1_voc12_c2/biases:0
fc1_voc12_c3/weights:0
fc1_voc12_c3/biases:
fc1_voc12_c*
层是有趣的层,需要随机重新初始化。但是当我尝试访问它们并像这样向变量添加日志记录时
var = [v for v in tf.trainable_variables() if v.name == "fc1_voc12_c0/weights:0"][0]
tf.summary.histogram("fc1_voc12_c0/weights_0", var)
我在 tensorboard 中看不到那个变量。 tensorboard 中唯一显示的是图形本身。
如何访问这些变量以便在 tensorboard 中监控它们?
我是否可以仅通过查看图表(见图)来推断我想要监控的变量的正确名称?
编辑
我稍微编辑了我的问题的焦点,因为代码的作者现在已经修复了一个错误。
为了澄清我的理解:您正在尝试从旧版本恢复模型的某些部分,并随机初始化其余部分。
如果是这样,您可以使用 tf.contrib.framework.init_from_checkpoint
从旧检查点初始化模型主体。模型的其余部分(输出层)应根据您的创建方式随机初始化。
它似乎确实按照问题中描述的方式工作。我只需要完全关闭 tensorboard 并为我创建的每个新日志文件重新启动 tensorboard。
我正在使用 tensorflow-deeplab-resnet model which transfers the Resnet model implemented in Caffe to tensorflow using caffe-tensorflow。
我想知道如何访问从 Caffe 导入的模型中的各个变量,以便检查出了什么问题。
我试过了
allTrainVars = tf.trainable_variables()
for f in allTrainVars:
print f.name
输出
[...]
res5c_branch2c/weights:0
bn5c_branch2c/scale:0
bn5c_branch2c/offset:0
bn5c_branch2c/mean:0
bn5c_branch2c/variance:0
fc1_voc12_c0/weights:0
fc1_voc12_c0/biases:0
fc1_voc12_c1/weights:0
fc1_voc12_c1/biases:0
fc1_voc12_c2/weights:0
fc1_voc12_c2/biases:0
fc1_voc12_c3/weights:0
fc1_voc12_c3/biases:
fc1_voc12_c*
层是有趣的层,需要随机重新初始化。但是当我尝试访问它们并像这样向变量添加日志记录时
var = [v for v in tf.trainable_variables() if v.name == "fc1_voc12_c0/weights:0"][0]
tf.summary.histogram("fc1_voc12_c0/weights_0", var)
我在 tensorboard 中看不到那个变量。 tensorboard 中唯一显示的是图形本身。
如何访问这些变量以便在 tensorboard 中监控它们?
我是否可以仅通过查看图表(见图)来推断我想要监控的变量的正确名称?
编辑
我稍微编辑了我的问题的焦点,因为代码的作者现在已经修复了一个错误。
为了澄清我的理解:您正在尝试从旧版本恢复模型的某些部分,并随机初始化其余部分。
如果是这样,您可以使用 tf.contrib.framework.init_from_checkpoint
从旧检查点初始化模型主体。模型的其余部分(输出层)应根据您的创建方式随机初始化。
它似乎确实按照问题中描述的方式工作。我只需要完全关闭 tensorboard 并为我创建的每个新日志文件重新启动 tensorboard。