作者:Irain
QQ:2573396010
微信:18802080892
1 知识点内容
1.1 张量(tensor)
多维数组(列表) 阶:张量的维数
可以高速运行于GPU和TPU之上;支持CPU.嵌入式、单机多卡和多机多卡等多种计算环境;高速的实现神经网络和深度学习中的复杂算法。
1.2 Python中的列表list
元素可以使用不同的数据类型,可以嵌套在内存中不连续存放,是一个动态的指针数组读写效低,占用内存空间大不适合做数值计算。
1.3 NumPy中的数组对象ndarray
元素数据类型相同;每个元素在内存中占用的空间相同,存储在一个连续的内存区域中;存储空间小,读取和写入速度快;在CPU中运算,不能够主动检测、利用GPU进行运算。
TensorFlow的基本运算、参数命名、运算规则、API的设计等与NumPy非常相近。
2 创建Tensor对象
张量由Tensor类实现,每个张量都是一个Tensor对象。
2.1 创建张量
tf. constant(value, dtype, shape)
value:数字/Python列表/NumPy数组
dtype:元素的数据类型
shape:张量的形状.
2.1.1 Tensor的numpy方法
2.1.2 参数为NumPy数组
numpy创建浮点数数组时,默认的浮点型是64位浮点数。当使用NumPy数组创建张量时,TensorFlow会接受数组元素的数据类型,使用64位浮点数保存数据。
2.2 改变张量中元素的数据类型
2.2.1 参数为布尔型
2.2.2 参数为字符串
2.3 tf.convert_ to_ tensor()函数
tf.convert_ to_ tensor( 数组/列表/数字/布尔型/字符串)
2.4 is_ tensor()函数
是否为张量
2.5 isinstance()函数
判断类型
3 特殊张量
类似于NumPy, TensorFlow中,也可以直接生成-些特殊的张量:全0张量、全1张量、所有元素值都相同的张量、元素取值符合某种随机分布的张量。
3.1 创建全0张量和全1张量
tf.zeros( shape, dtype = tf.float32 )(默认类型)
tf.ones( shape, dtype= tf.float32 )(默认类型)
3.2 创建元素值都相同的张量-tf.fill(dims, value)
tf.fill(dims, value)
dims:形状
value:值
3.3 创建元素值都相同的张量-tf.constant()函数
3.4 创建随机数张量一正态分布
tf.random.normal( shape, mean, stddev, dtype )
meam:均值
stddev:标准差
例:创建- -个2x 2的张量,其元素服从标准正态分布的张量
例:创建一个三维张量,其元素服从正态分布
3.5 创建随机数张量一截断 正态分布
tf.random.truncated_normal( shape, mean, stddev, dtype )
■返回一个截断的正态分布
■截断的标准是2倍的标准差
例如,当均值为0,标准差为1时,
使用tf.truncated_ normal, 不可能出现区间[-2,2]以外的点
使f用f.random_ normal(), 可能出现[-2,2]以外的点
3.6 设置随机种子
tf.random.set_ seed()函数:设置随机种子。与tf.random.normal()函数结合使用。
3.7 创建均匀分布张量
tf.random.uniform(shape,minval, maxval, dtype)
minval:最小值
maxval:最大值
前闭后开:不包括maxval最大值。
3.8 随机打乱
tf.random.shuffle()函数:随机打乱Tensor序号。输入(list、ndarray),输出Tensor。
3.9 创建序列
tf.range(start, limit, delta= 1,dtype)
start:起始值
limit:结束值(不包括)
delta:步长(默认为1)
可以省略start、delta。
4 小结
4.1 Tensor对象的属性
ndim:维度
shape:形状
dtype:类型
4.2 Tensor对象的shape()、size()、 rank()方 法
tf.shape(): 形状
tf.size():元素总数
tf.rank() :张量维度
4.3 张量和NumPy数组
●在TensorFlow中,所有的运算都是在张量之间进行的
●NumPy数组仅仅是作为输入和输出来使用
●张量可以运行于CPU,也可以运行于GPU和TPU
●NumPy数组只能够在CPU中运行
发布:2020年6月15日