首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从恢复的检查点文件中获取张量的名称:仅返回一个变量名称

从恢复的检查点文件中获取张量的名称:仅返回一个变量名称
EN

Stack Overflow用户
提问于 2017-07-10 16:25:08
回答 1查看 241关注 0票数 1

关于使用检查点文件恢复网络,我有两个问题。我使用this code恢复我的网络。我只需要我的原始网络的一部分。实际上,我的原始网络由5个卷积(非常小)网络组成,所有这些都连接到最后一个完全连接的大层。我只想要我的5个迷你口罩。我为网络中的每一个变量和每一层定义名称。(我注意到,当我使用日志数据运行tensorboard时,一切正常。这意味着,我有我所有变量和张量的适当名称)

1-我的第一个问题是,当我想在恢复的网络中按名称找到这些变量中的任何一个时,我面临着“没有这个名称的张量”错误。我还用inspect_checkpoint.py测试了我的检查点文件,在输出中它只返回一个变量:

代码语言:javascript
运行
复制
Variable (DT_INT32) []

在另一种情况下,我用下面的代码再次测试:

代码语言:javascript
运行
复制
from tensorflow.python import pywrap_tensorflow
checkpoint_path = os.path.join('./', 'model.ckpt-100')
reader = pywrap_tensorflow.NewCheckpointReader(checkpoint_path)
var_to_shape_map = reader.get_variable_to_shape_map()
for key in var_to_shape_map:
    print("tensor_name: ", key)
    print(reader.get_tensor(key))

然后返回:

代码语言:javascript
运行
复制
tensor_name:  Variable
101

我找不到这个问题的原因。在座的各位有没有遇到过这个问题?

2-基于上面我用来恢复我的网络的网站,我有点困惑。实际上,我想恢复我所有的5个迷你convnet (所有这些迷你网络在它们的最后一层都有一个完全连接的)。因此,我真的不知道从最后一个完全连接层恢复每个迷你convnet及其所有权重的正确方法是什么。

EN

Stack Overflow用户

发布于 2017-07-10 17:47:59

1-从外观上看,你似乎还没有命名你的变量。它不保存变量名称。如果是这样的话,如果你有不同的类型,它们可能会在训练中工作,但当你试图构建一个具有相同键名的字典时,写入内存的操作就会变得混乱并被覆盖。

2-要完全恢复网络,您必须使用

代码语言:javascript
运行
复制
saver = tf.train.Saver()
saver.save(session_to_save, 'namefile')
...
saver.restore(session_to_restore, 'namefile')
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45007137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档