按名称获取TensorFlow tf.操作输入
让按名称获取TensorFlow tf.操作输入,tensorflow,Tensorflow,让op成为tf.操作。我可以通过op.inputs获取其输入。但是输入也有由op类型定义的名称,我可能可以通过op.op_def以某种方式提取这些名称。但是有没有一个简单的方法 最后,我想要一个dict,比如{input\u name[I]:op.inputs[I]for I…} 我当前的解决方案: def get_protobuf_fields(obj): """ :param obj: protobuf object :rtype: dict[str] """ retur
op
成为tf.操作
。我可以通过op.inputs
获取其输入。但是输入也有由op类型定义的名称,我可能可以通过op.op_def
以某种方式提取这些名称。但是有没有一个简单的方法
最后,我想要一个dict,比如{input\u name[I]:op.inputs[I]for I…}
我当前的解决方案:
def get_protobuf_fields(obj):
"""
:param obj: protobuf object
:rtype: dict[str]
"""
return {k.name: v for (k, v) in obj.ListFields()}
def get_operation_input_names(op):
"""
:param tf.Operation op:
:rtype: list[str]
"""
op_def_fields = get_protobuf_fields(op.op_def)
args_pb = [get_protobuf_fields(a) for a in op_def_fields["input_arg"]]
return [a["name"] for a in args_pb]
然后你会得到这样的口述:
inputs_by_name = dict(zip(get_operation_input_names(op), op.inputs))
例如,对于op=tf.add(3,4).op
,您将通过_name={'x':…,'y':…}获得输入
有没有更简单的方法