TensorFlow 手工构建GraphDef [英] TensorFlow Manual Construction of GraphDef
问题描述
在TensorFlow中,我发现我可以做到以下几点,
来自 tensorflow.core 导入框架从 google.protobuf 导入 json_formatgraph_def = framework.graph_pb2.GraphDef()node_def = framework.node_def_pb2.NodeDef()graph_def.node.extend([node_def])打印 json_format.MessageToJson(graph_def)
打印什么
<代码>{节点":[{}]}
现在,我的节点实际上并未设置为操作.我不知道如何让 node_def 成为一个操作.我可以通过构建 OpDefs,
from tensorflow.python.ops import gen_array_opsconst_op_def = gen_array_ops._InitOpDefLibrary()._ops['Const'].op_def
属于
我想让我的 NodeDef 注册为这个 OpDef.
<预><代码>>>>打印 json_format.MessageToJson(gen_array_ops._InitOpDefLibrary()._ops['Const'].op_def){输出参数":[{"typeAttr": "dtype",名称":输出"}],"name": "常量",属性":[{类型":张量",名称":值"},{"类型": "类型",名称":数据类型"}]}我相信您正在寻找一种在 GraphDef
和 NodeDef
protos 中设置消息字段的方法.如何在 Python 中修改 ProtoBuf 对象的详细信息这里>
In TensorFlow, I found that I can do the following,
from tensorflow.core import framework
from google.protobuf import json_format
graph_def = framework.graph_pb2.GraphDef()
node_def = framework.node_def_pb2.NodeDef()
graph_def.node.extend([node_def])
print json_format.MessageToJson(graph_def)
Which prints
{
"node": [
{}
]
}
Now, my node is not actually set to an Operation. I can't figure out how to make node_def be an operation. I can construct OpDefs via,
from tensorflow.python.ops import gen_array_ops
const_op_def = gen_array_ops._InitOpDefLibrary()._ops['Const'].op_def
Which is of class <class 'tensorflow.core.framework.op_def_pb2.OpDef'>
I would like to make my NodeDef register as this OpDef.
EDIT:
>>> print json_format.MessageToJson(gen_array_ops._InitOpDefLibrary()._ops['Const'].op_def)
{
"outputArg": [
{
"typeAttr": "dtype",
"name": "output"
}
],
"name": "Const",
"attr": [
{
"type": "tensor",
"name": "value"
},
{
"type": "type",
"name": "dtype"
}
]
}
I believe you are looking for a way to set message fields inside of the GraphDef
and NodeDef
protos. How to modify ProtoBuf objects in Python is detailed here
这篇关于TensorFlow 手工构建GraphDef的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!