tensorflow2.0教程与操作示例

  • 安装
  • 宿主机驱动
  • CUDA Toolkit 和 cuDNN 的安装
  • 限定程序使用GPU
  • tnsorflow2基础知识python技巧TensorFlow 模型建立与训练
  • 示例代码
  • 步骤
  • 源代码
  • 基础知识
  • 示例代码
  • keras 预定义了卷积神经网络结构实例代码
  • 示例代码动态规划 (Dynamic Programming DP)
  • 自定义层
  • 自定义损失函数和评估指标示例管理checkpointTensorBoard:训练过程可视化数据集的构建和预处理
  • 模型导出
  • 分布式计算单机 MirroredStrategy多机 MultiWorkerMirroredStrategy
  • test GPU
基础操作安装
  • 从 TensorFlow 2.1 开始 , pip 包 tensorflow 即同时包含 GPU 支持 , 无需通过特定的 pip 包 tensorflow-gpu 安装 GPU 版本 。 如果对 pip 包的大小敏感 , 可使用 tensorflow-cpu 包安装仅支持 CPU 的 TensorFlow 版本 。
  • conda虚拟环境
conda create --name [env-name]# 建立名为[env-name]的Conda虚拟环境conda activate [env-name]# 进入名为[env-name]的Conda虚拟环境conda deactivate# 退出当前的Conda虚拟环境conda env remove --name [env-name]# 删除名为[env-name]的Conda虚拟环境conda env list# 列出所有Conda虚拟环境宿主机驱动
  • 测试:nvidia-smi
CUDA Toolkit 和 cuDNN 的安装【tensorflow2.0教程与操作示例】conda install cudatoolkit=X.Xconda install cudnn=X.X.Xconda install tensorflow-gpu限定程序使用GPU
  • 方法1
import osos.environ [“CUDA_DEVICE_ORDER”] = “PCI_BUS_ID”os.environ [“CUDA_VISIBLE_DEVICES”] = “-1”
  • 方法2
with tf.device (’/cpu:0’):A = tf.constant ([[1, 2], [3, 4]])B = tf.constant ([[5, 6], [7, 8]])C = tf.matmul (A, B)
  • 方法3
import tensorflow as tftf.debugging.set_log_device_placement (True)# 设置输出运算所在的设备cpus = tf.config.list_physical_devices ('CPU')# 获取当前设备的 CPU 列表tf.config.set_visible_devices (cpus)# 设置 TensorFlow 的可见设备范围为 cpuA = tf.constant ([[1, 2], [3, 4]])B = tf.constant ([[5, 6], [7, 8]])C = tf.matmul (A, B)print (C)tnsorflow2基础知识
  • 前置知识
  • python 对象的属性 dir(对象)vars(对象)help(对象)
python技巧
  • Python 中可以使用整数后加小数点表示将该整数定义为浮点数类型 。 例如 3. 代表浮点数 3.0
  • zip()在python3中是一个生成器 ,
TensorFlow 模型建立与训练
  • 模型的构建: tf.keras.Model 和 tf.keras.layers keras 中两个比较重要的概念是是模型(Model)和层(Layer) 。 曾将各种计算流程和变量进行了封装 , 而模型则将各个层进行了组织和链接 , 并且封装成了一个整体 , 描述了如何将输入数据通过各个层以及运算而得到输出 。 需要调用模型的时候就需要:y=model(X)的形式就可以 。 keras中layers中预定义层 , 同时也允许我们自定义层 。
  • 模型的损失函数: tf.keras.losses
  • 模型的优化器: tf.keras.optimizer
  • 模型的评估: tf.keras.metrics
class MyModel(tf.keras.Model):def __init__(self):super().__init__()# Python 2 下使用 super(MyModel, self).__init__()# 此处添加初始化代码(包含 call 方法中会用到的层) , 例如# layer1 = tf.keras.layers.BuiltInLayer(...)# layer2 = MyCustomLayer(...)def call(self, input):# 此处添加模型调用的代码(处理输入并返回输出) , 例如# x = layer1(input)# output = layer2(x)return output# 还可以添加自定义的方法