性能# 使用 tf.function 时提升性能 安装 基础知识 用法 跟踪 什么是“跟踪”? 跟踪规则 控制回溯 将固定的 input_signature 传递给 tf.function 使用未知维度以获得灵活性 传递张量而不是 Python 文字 使用跟踪协议 获取具体函数 获取计算图 调试 AutoGraph 转换 条件语句 循环 在 Python 数据上循环 累加循环值 限制 执行 Python 副作用 更改 Python 全局变量和自由变量 使用 Python 迭代器和生成器 tf.function 的所有输出都必须是返回值 不支持递归 tf.functions 已知问题 取决于 Python 全局变量和自由变量 依赖于 Python 对象 创建 tf.Variables 与多个 Keras 优化器一起使用 与多个 Keras 模型一起使用 延伸阅读 使用 TensorFlow Profiler 优化 TensorFlow GPU 性能 概述 性能优化工作流 1. 优化一个 GPU 上的性能 1. 调试输入流水线 调试一个 GPU 的性能 1. 分析步骤之间的间隙 2. 实现更高的设备利用率 1. 小型 GPU 内核和主机内核启动延迟 2. TensorFlow 运算放置 3. GPU 上更高效的内核 1. 利用 Tensor Core 2. 融合运算 3. 启用混合精度和 XLA 1. 启用混合精度 1. 使用最优的 fp16 内核 2. 动态与静态损失扩缩 2. 使用 tf.function(jit_compile=True) 或自动聚簇启用 XLA 2. 优化多 GPU 单主机上的性能 1. 优化梯度 AllReduce 2. GPU 主机线程争用 使用 Grappler 优化 TensorFlow 计算图 概述 可用的计算图优化器 设置 比较使用和不使用 Grappler 时的执行性能 常量折叠优化器 调试剥离器优化器 总结 混合精度 概述 安装 支持的硬件 设置 dtype 策略 构建模型 使用 Model.fit 训练模型 损失放大 下溢和溢出 损失放大概述 使用自定义训练循环训练模型 GPU 性能提示 增大批次大小 确保使用 GPU Tensor 核心 XLA Cloud TPU 性能提示 总结 使用 Profiler 优化 TensorFlow 性能 安装 Profiler 和 GPU 前提条件 解决权限问题 Profiler 工具 概览页面 输入流水线分析器 输入流水线信息中心 输入流水线摘要 设备端分析 主机端分析 TensorFlow Stats Trace Viewer Trace Viewer 界面 版块和轨道 事件 GPU Kernel Stats 内存性能剖析工具 {: id = ‘memory_profile_tool’} 内存性能剖析摘要 内存时间线图 内存明细表 Pod Viewer tf.data 瓶颈分析 Performance Analysis Summary 如何读取 tf.data 迭代器的长名称 所有输入流水线的摘要 输入流水线图 收集性能数据 性能剖析 API 剖析自定义训练循环的性能 性能剖析用例 实现最佳模型性能的最佳做法 优化输入数据流水线 优化数据增强 使用 NVIDIA® DALI 使用线程和并行执行 其他 提升设备性能 配置数据布局 最大化 L2 缓存 配置 GPU 线程使用率 配置 GPU 内存选项 其他 其他资源 已知问题/限制 在 TensorFlow 2.2 和 TensorFlow 2.3 上剖析多个 GPU 的性能