1.TensorFlow的依赖视图
优点:
-
TF托管在github平台,有google groups和contributors共同维护。
-
TF提供了丰富的深度学习相关的API,⽀持Python和C/C++接⼝。
-
TF提供了可视化分析⼯具Tensorboard,⽅便分析和调整模型。
-
TF⽀持Linux平台,Windows平台,Mac平台,甚⾄⼿机移动设备等各种平台。
2. TensorFlow 工作流程
1、使⽤tf.data加载数据。 使⽤tf.data实例化读取训练数据和测试数据
2、模型的建⽴与调试: 使⽤动态图模式 Eager Execution 和著名的神经
⽹络⾼层 API 框架 Keras,结合可视化⼯具 TensorBoard,简易、快速地
建⽴和调试模型;
3、模型的训练: ⽀持 CPU / 单 GPU / 单机多卡 GPU / 多机集群 / TPU
训练模型,充分利⽤海量数据和计算资源进⾏⾼效训练;
4、预训练模型调⽤: 通过 TensorFlow Hub,可以⽅便地调⽤预训练完
毕的已有成熟模型。
5、模型的部署: 通过 TensorFlow Serving、TensorFlow Lite、
TensorFlow.js 等组件,可以将TensorFlow 模型部署到服务器、移动端、
嵌⼊式端等多种使⽤场景;
3. 张量及其操作
3.1 张量
3.1.1 什么是张量
定义:张量是一个多维数组,有数据类型,和形状。
3.1.2 基本使用
(1) 创建
tf.constant(value,dtype,shape)
value用来指定数据,dtype用来显式地声明数据类型,shape用来指定数据的形状,
import tensorflow as tf
# tf.constant(value,dtype,shape)
# value用来指定数据,dtype用来显式地声明数据类型,shape用来指定数据的形状,
# 创建int32类型的0维张量
rank_0_tensor = tf.constant(4)
print(rank_0_tensor)
# 创建float类型的1维张量
rank_1_tensor = tf.constant([1.0, 2.0])
print(rank_1_tensor)
# 创建float16类型的⼆维张量
rank_2_tensor = tf.constant([[1, 2],[3, 4],[5, 6]], dtype= tf.float16)
print(rank_2_tensor)
(2)转换成numpy
# 转换维numpy形式 两种方式
# np.array(tensor)
# tensor.numpy()
# 法1:
import numpy as np
print(np.array(rank_2_tensor))
# 法2:
print(rank_2_tensor.numpy())
(3)常用函数
# tf.add(a, b)
# tf.subtract(a, b)
# tf.multiply(a, b)
# tf.matmul(a, b)
# tf.reduce_sum() # 求和
# tf.reduce_mean() # 平均值
# tf.reduce_max() # 最⼤值
# tf.reduce_min() # 最⼩值
# tf.argmax() # 最⼤值的索引
# tf.argmin() # 最⼩值的索引
a = tf.constant([[1, 2], [2, 3]])
b = tf.constant([[2, 1], [3, 2]])
print(a + b)
print(tf.add(a, b))
print(a - b)
print(tf.subtract(a, b))
print(a * b)
print(tf.multiply(a, b))
# 矩阵乘法
print(tf.matmul(a, b))
c = tf.constant([[4.0, 5.0], [10.0, 1.0]])
# 最大值
print(tf.reduce_max(c))
# 最大值索引
print(tf.argmax(c))
# 最小值
print(tf.reduce_min(c))
# 最值索引
print(tf.argmin(c))
# 求和
print(tf.reduce_sum(c))
# 求平均值
print(tf.reduce_mean(c))
3.2 变量
3.2.1 变量定义
变量是⼀种特殊的张量,形状是不可变,但可以更改其中的参数。
3.2.2 变量定义及使用
# tf.Variable(initializer,name)
参数initializer是初始化参数,name是可自定义的变量名称
a = tf.Variable([[1, 2], [3, 4]], name = 'b')
print("Shape: ",a.shape)
print("DType: ",a.dtype)
print("As NumPy: ", a.numpy)
4. tf.keras 介绍
tf.keras是TensorFlow 2.0的⾼阶API接⼝,为TensorFlow的代码提供了新
的⻛格和设计模式,⼤⼤提升了TF代码的简洁性和复⽤性,官⽅也推荐使
⽤tf.keras来进⾏模型设计和开发。
4.1 常用模块
模块 | 概述 |
---|---|
activations | 激活函数 |
applications | 预训练⽹络模块 |
Callbacks | 在模型训练期间被调⽤ |
datasets | tf.keras数据集模块 |
layers | Keras层API |
losses | 各种损失函数 |
metircs | 各种评价指标 |
models | 模型创建模块,以及与模型相关的API |
optimizers | 优化⽅法 |
preprocessing | Keras数据的预处理模块 |
regularizers | 正则化,L1,L2等 |
utils | 辅助功能实现 |
4.2 常⽤⽅法
深度学习实现的主要流程:
- 数据获取
- 数据处理
- 模型创建与训练
- 模型测试与评估
- 模型预测