python-3.x - 如何找到 output_node_name 来构建冻结图?
问题描述
我指 的是https://github.com/dennybritz/cnn-text-classification-tf作为参考。我的目标是从模型文件构建冻结图。我想知道签名中的输入和输出节点以有效地构建冻结图。我正在使用以下代码从图形定义中打印 proto 文件。
saver=tf.train.import_meta_graph('some_path/model.ckpt.meta')
imported_graph = tf.get_default_graph()
graph_op = imported_graph.get_operations() with open('output.txt', 'w') as f:
for i in graph_op:
f.write(str(i))
我得到的输出如下:https://drive.google.com/drive/folders/1iZQqohx8jAWbSw7XV3vFJuLkaUp0Dt2s?usp=sharing
我怎么知道哪个是输出节点,哪个是输入节点,这个文件中有大量的输入和输出?
解决方案
我建议使用 Tensorboard 来可视化图形结构,而不是使用带有节点的文本文件。您可以在此处找到更多详细信息。
然而,图表本身没有输入或输出的概念。您可以将没有输入连接的节点视为输入节点的良好候选者,尤其是占位符节点。连接到损失函数的节点是输出节点的良好候选者。
总结一下:一般情况下,你需要通过分析网络架构来猜测哪些节点是输入,哪些是输出。
至于您引用的存储库,您可以阅读eval.py
代码并找到以下几行:
input_x = graph.get_operation_by_name("input_x").outputs[0]
# input_y = graph.get_operation_by_name("input_y").outputs[0]
dropout_keep_prob = graph.get_operation_by_name("dropout_keep_prob").outputs[0]
# Tensors we want to evaluate
predictions = graph.get_operation_by_name("output/predictions").outputs[0]
所以很可能输入节点是“input_x”,输出节点是“输出/预测”。
推荐阅读
- angular - Angular不需要的重新加载页面
- python - 用于 Flask 应用程序的带有 NGINX 反向代理的 Docker
- asp.net-core - 使用 HTTPS 登录后 C# ASP.NET Core IdentityServer4 错误重定向
- python - 如何检查 pandas.DataFrame 中哪一列是某个值?
- azure-devops - 在发布时配置 ClickOnce 包
- ms-access - 需要在Access中使用SQL语句获取整数值
- reactjs - 使用 react-router-dom 更改路由功能
- python - 难以在 Tkinter 中显示用户输入的图像
- sparql - 查询事件的时间线 - DBpedia 和 SPARQL
- pandas - 如何找到两个不同大小的数据数组的元素之间的差异?