阅读(12.4k) 书签 (0)

创建TensorProto

2018-10-28 17:18 更新
函数:tf.make_tensor_proto

别名:

  • tf.contrib.util.make_tensor_proto
  • tf.make_tensor_proto
make_tensor_proto(
    values,
    dtype=None,
    shape=None,
    verify_shape=False
)

定义在:tensorflow/python/framework/tensor_util.py

请参阅指南:实用程序(contrib)>其他实用程序功能

创建 TensorProto.

参数:

  • values:放在 TensorProto 中的值.
  • dtype:可选的 tensor_pb2 数据类型值.
  • shape:表示张量维数的整数列表.
  • verify_shape:布尔值,它可以验证数值的形状.

返回值:

该函数返回 TensorProto.根据类型,它可能包含 “tensor_content” 属性中的数据,这对 Python 程序并不直接有用.要访问的值,您应该使用tensor_util.MakeNdarray(proto)将原型转换为 numpy ndarray.

可能引发的异常:

  • TypeError:如果提供不支持的类型.
  • ValueError:如果参数具有不合适的值,或者如果 verify_shape 为真,并且值的形状不等于参数中的形状.

make_tensor_proto 接受 python 标量、python 列表、numpy ndarray 或 numpy 标量的“值”.

如果“值”是一个 python 标量或一个 python 列表,make_tensor_proto 首先将其转换为 numpy ndarray.如果 dtype 为 None,则转换会尽量推断正确的numpy数据类型.否则,生成的numpy数组与给定的dtype具有兼容的数据类型.

在上述任何一种情况下,numpy ndarray(提供的调用者或自动转换)必须具有与dtype兼容的类型.

然后,make_tensor_proto 将 numpy 数组转换为张量原型.

如果“形状”为“None”,则所得的张量原型表示精确的 numpy 数组.

否则,“形状”指定张量的形状,而 numpy 数组不能比“形状”指定的元素多.