TF02-01:张量数据定义与运算

2018-10-16  本文已影响168人  杨强AT南京

本主题内容
  Tensorflow的图的核心构成就是数据与数据操作,在Tensorflow中所有数据都表示成张量Tensor),数据操作就是函数

  1. 张量定义
  2. 张量使用


一、张量定义

1. 张量的作用

2. 张量类的API介绍

  可以从Tensorflow的API参考文档获取张量Tensor类的帮助。

属性 属性说明
device 产生张量的设备,指的是CPU,GPU
dtype 数据类型
graph 张量所在的图
name 张量的字符串名
op 输出张量的操作
shape 张量形状(是TensorShape类型)
value_index 张量在操作的所有输出张量列表中的索引。

  每个张量对象都是有 操作op 指令产生,Tensorflow提供常见 操作op 实现,用户也可以实现自己的 操作op 定义(比较麻烦,后面由专门主题解释)。可以调用操作构造器tf.matmul来创建 操作op 对象。
  其中数据类型由Tensorflow内部定义:

数据类型 数据类型说明
tf.float16 16-bit half-precision floating-point.
tf.float32 32-bit single-precision floating-point.
tf.float64 64-bit double-precision floating-point.
tf.bfloat16 16-bit truncated floating-point.
tf.complex64 64-bit single-precision complex.
tf.complex128 128-bit double-precision complex.
tf.int8 8-bit signed integer.
tf.uint8 8-bit unsigned integer.
tf.uint16 16-bit unsigned integer.
tf.uint32 32-bit unsigned integer.
tf.uint64 64-bit unsigned integer.
tf.int16 16-bit signed integer.
tf.int32 32-bit signed integer.
tf.int64 64-bit signed integer.
tf.bool Boolean.
tf.string String.
tf.qint8 Quantized 8-bit signed integer.
tf.quint8 Quantized 8-bit unsigned integer.
tf.qint16 Quantized 16-bit signed integer.
tf.quint16 Quantized 16-bit unsigned integer.
tf.qint32 Quantized 32-bit signed integer.
tf.resource Handle to a mutable resource.
tf.variant Values of arbitrary types.

提示:在张量shape的表示也需要注意,标量形状使用[ ]表示。
标量形状表示 [ ]:比如3
向量形状表示 [3]:比如[1., 2., 3.]
矩阵形状表述[2, 3]:表示行2列3的矩阵、
高阶张量形状表示[2,4,8]。
如果张量某个维度大小未知,在输入数据确定,可以使用None。

Tensor内置函数 对应运算符号
abs tf.abs(x) 对复数计算方式为\sqrt[2]{x^2+y^2}
add x + y
div x / y
floordiv x // y (Python3)
sub x - y
pow x ** y 等价于x^y
matmul a * b,对向量就是内积(a @ b)
mul Dispatches cwise mul for "DenseDense" and "DenseSparse".稀疏与密集处理计算
mod x % y
neg -x
truediv 此函数强制使用Python 3除法运算符语义,其中所有整数参数首先转换为浮点类型。
invert ~ x
and x & y
or x | y
xor x ^ y
bool 把Tensor对象当bool值使用
nonzero 防止把Tensor对象当bool值使用
radd x+=y
rdiv x/=y
rfloordiv x//=y
rmatmul x*=y
rmod x%=y
rmul x*=y
rpow x**=y
rsub x-=y
rtruediv 此函数强制使用Python 3除法运算符语义,其中所有整数参数首先转换为浮点类型。
rand x &= y
rxor x ^= y
ror x |= y
eq x == y
ge x >= y
gt x > y
le x <= y
lt x < y
iter 迭代器对象
getitem []下标运算符,对标量无效

3. 定义张量对象

  除了 tf.Variable 以外,张量的值是不变的,这意味着对于单个执行任务,张量只有一个值。然而,两次评估同一张量可能会返回不同的值;

  基本上在numpy中定义的变量方式在tensorflow都存在对应的方式。

二、张量使用

1. 张量的运算

2. 张量作为输入参数


【资源】

上一篇下一篇

猜你喜欢

热点阅读