当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.Tensor用法及代码示例


tf.Tensor 表示元素的多维数组。

用法

tf.Tensor(
    op, value_index, dtype
)

参数

  • op 一个 OperationOperation 计算这个张量。
  • value_index 一个 int 。产生此张量的操作端点的索引。
  • dtype 一个DType。存储在此张量中的元素类型。

抛出

  • TypeError 如果操作不是 Operation

属性

  • device 将在其上生成此张量的设备的名称,或无。
  • dtype 该张量中元素的DType
  • graph 包含此张量的 Graph
  • name 这个张量的字符串名称。
  • op Operation 产生这个张量作为输出。
  • shape 返回一个tf.TensorShape表示这个张量的形状。
    t = tf.constant([1,2,3,4,5])
    t.shape
    TensorShape([5])

    tf.Tensor.shape 等同于 tf.Tensor.get_shape()

    tf.function 或使用 tf.keras.Input 构建模型时,它们返回张量的 build-time 形状,这可能部分未知。

    tf.TensorShape 不是张量。使用 tf.shape(t) 获取包含形状的张量,在运行时计算。

    有关详细信息和示例,请参阅 tf.Tensor.get_shape()tf.TensorShape

  • value_index 该张量在其 Operation 的输出中的索引。

所有元素都是单一的已知数据类型。

在编写 TensorFlow 程序时,操作和传递的主要对象是 tf.Tensor

tf.Tensor 具有以下属性:

  • 单一数据类型(例如,float32、int32 或字符串)
  • 一个形状

TensorFlow 支持即刻执行和图执行。在即刻执行中,会立即评估操作。在图执行中,构建计算图以供以后评估。

TensorFlow 默认为即刻执行。在下面的示例中,立即计算矩阵乘法结果。

# Compute some values using a Tensor
c = tf.constant([[1.0, 2.0], [3.0, 4.0]])
d = tf.constant([[1.0, 1.0], [0.0, 1.0]])
e = tf.matmul(c, d)
print(e)
tf.Tensor(
[[1. 3.]
 [3. 7.]], shape=(2, 2), dtype=float32)

请注意,在即刻执行期间,您可能会发现您的 Tensors 实际上属于 EagerTensor 类型。这是一个内部细节,但它确实让您可以访问一个有用的函数 numpy

type(e)
<class '...ops.EagerTensor'>
print(e.numpy())
  [[1. 3.]
   [3. 7.]]

在 TensorFlow 中,tf.function 是定义图执行的常用方法。

张量的形状(即张量的秩和每个维度的大小)可能并不总是完全已知的。在tf.function 定义中,形状可能只是部分已知的。

如果输入的形状也完全已知,则大多数操作会产生 fully-known 形状的张量,但在某些情况下,只能在执行时找到张量的形状。

许多专用张量可用:参见 tf.Variabletf.constanttf.placeholdertf.sparse.SparseTensortf.RaggedTensor

警告:从 numpy 数组或 pandas 数据帧构造张量时,可以重用底层缓冲区:

a = np.array([1, 2, 3])
b = tf.constant(a)
a[0] = 4
print(b)  # tf.Tensor([4 2 3], shape=(3,), dtype=int64)

注意:这是一个可能会更改的实现细节,用户不应依赖此行为。

有关张量的更多信息,请参阅指南。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.Tensor。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。