TensorFlow2.0使用方法
TensorFlow2.0
1 使用技巧
-
更新到最新版本:
pip install --upgrade tensorflow pip install --upgrade tensorflow-gpu
-
导入TensorFlow模块:
import tensorflow as tf
-
查看版本号:
print('TensorFlow版本号为:', tf.__version__)
-
查看是否支持GPU运算:
rint('GPU是否可用:', tf.test.is_gpu_available()) print('GPU设备名称:', tf.test.gpu_device_name())
-
查看模式:
print('是否为动态模式(EagerExecution):', tf.executing_eagerly())
-
在TensorFlow2.0环境中,运行TensorFlow1.x版本:
import tensorflow.compat.v1 as tf tf.disable_v2_behavior()
2 TensFlow基础
1 创建张量
-
创建张量Tensor对象:
tf.constant(value, dtype, shape)
- value:数字、Python列表、Numpy数组
- dtype:元素的数据类型
- shape:张量的形状
tf.convert_to_tensor(数组/列表/数字/布尔型/字符串)
-
判断数据对象是否为张量:
tf.is_tensor(x)
- x:数据对象
-
Python验证数据对象是否为张量:
isinstance(x)
- x:数据对象
-
张量转换为Numpy数组:
x.numpy()
- x:TensorFlow的张量
-
张量元素的数据类型:
数据类型 描述 tf.int8 8位有符号整数 tf.int16 16位有符号整数 tf.int32 32位有符号整数 tf.int64 64位有符号整数 tf.uint8 8位无符号整数 tf.float32 32位浮点数 tf.float64 64位浮点数 tf.string 字符串(非Unicode编码的字节数组) tf.bool 布尔型 tf.complex64 复数,实部和虚部分别为32位浮点型 -
更改元素的数据类型:
tf.cast(x, dtype)
- x:TensorFlow的张量
- dtype:目标类型
注:
- 在进行数据类型转换时,一般是将低精度的数据类型向高精度转换,否则可能发生数据溢出,得到错误的结果。
- 布尔型转为整型,0:False, 1:True;
- 整型变量转换为布尔型,将非0数字都视为True。
2 维度变换改变张量的形状:
-
改变张量的形状:
tf.reshape(tensor, shape)
- tensor:原始张量
- shape:目标张量的形状
注:shape参数等于-1时,自动推导出长度。
-
增加张量的维度:
tf.expand(input, axis)
- input:输入的张量
- axis:增加的轴位置
-
删除张量维度
tf.squeeze(input, axis)
注:只能删除长度为1的维度
-
交换张量的维度:
tf.transpose(x, perm)
- x:原始张量
- perm:各个轴的顺序
-
拼接张量:
tf.concat(tensors, axis)
- tensors:列表,包含所有需要拼接的张量
- axis:制定在哪个轴上拼接
-
分割张量
tf.spllt(value, num_or_size_splits, axis=0)
- value:待分割的张量
- num_or_size_splits:分割的方案
- axis:指定按照哪个轴进行分割
注:图像的分割与拼接,改变的是张量的视图,张量的存储顺序并没有改变。
-
张量的堆叠
tf.stack(values, axis)
- values:要堆叠的多个张量
- axis:指定插入新维度的位置
-
张量分解
tf.unstack(values, axis)
- values:要分解的张量
- axis:指定要分解的轴
3 部分采样
-
索引
x[:][:]
-
切片
x[起始位置:结束位置:步长]
注:
- 起始位置:结束位置,是前闭后开的 ,切片中不包含结束位置。
- 起始位置、结束位置、步长都可以省略。
- 步长可以是负数,这时起始位置的索引号,应该大于结束位置。
- 纬度之间用逗号隔开。
-
数据提取
根据索引,抽取没有规律的、特定的数据。
tf.gather(params, axis, indices)
- params:原始张量
- axis:说明在哪个轴上采样
- indices:索引值列表
同时采样多个点:
tf.gather_nd(params, indices)
- params:原始张量
- indices:采样点的位置
4 张量运算
-
基本数学运算
算术操作 描述 公式 tf.add(x, y) 将x和y逐元素相加 \(x+y\) tf.subract(c, y) 将x和y逐元素相减 \(x-y\) tf.multiply(x, y) 将x和y逐元素相乘 \(x\times y\) tf.divide(x, y) 将x和y逐元素相除 \(\frac{x}{y}\) tf.math.mod(x, y) 对x和y逐元素取模 \(\sqrt{x^2+y^2}\) -
幂指对数运算
算术操作 描述 公式 tf.pow(x, y) 对x求y的幂次方 \(x^y\) tf.square(x) 对x逐元素求平方 \(x^2\) tf.sqrt(x) 对x逐元素求开平方 \(\sqrt{x}\) tf.exp(x) 计算e的x次方 \(e^x\) tf.math.log(x) 计算x的自然对数(底数为e) \(\log_{e}{x}\) -
其他运算
函数 描述 tf.sign(x) 返回x的符号 tf.abs() 对x逐元素求绝对值 tf.negative(x) 对x逐元素求相反数 tf.reciprocal(x) 取x的倒数 tf.logical_not(x) 对x逐元素求的逻辑非 tf.ceil(x) 向上取整 tf.floor(x) 向下取整 tf.rint(x) 取最接近的整数 tf.round(x) 对x逐元素求舍入最接近的整数 tf.maximum(x, y) 返回两个向量中的最大值 tf.minimum(x, y) 返回两个向量中的最小值 -
三角函数和反三角函数运算
函数 描述 tf.cos(x) 三角函数cos tf.sin(x) 三角函数sin tf.tan(x) 三角函数tan tf.acos(x) 反三角函数arccos tf.asin(x) 反三角函数arcsin tf.atan(x) 反三角函数arctan
待更新…