Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按名称获取TensorFlow tf.操作输入_Tensorflow - Fatal编程技术网

按名称获取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':…}获得
输入

有没有更简单的方法