在TensorFlow中,我发现我可以执行以下操作,
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)
打印
{
"node": [
{}
]
}
现在,我的节点实际上并未设置为Operation。我无法弄清楚如何使node_def成为一个操作。我可以通过构建OpDefs,
from tensorflow.python.ops import gen_array_ops
const_op_def = gen_array_ops._InitOpDefLibrary()._ops['Const'].op_def
哪个是班级<class 'tensorflow.core.framework.op_def_pb2.OpDef'>
我想把我的NodeDef寄存器作为这个OpDef。
编辑:
>>> 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"
}
]
}