跳至主要內容

〔TensorFlow〕前言

大林鸱大约 5 分钟深度学习计算机视觉自然语言处理

作者的目的是利用深度学习解决视觉和自然语言问题,作者调研了多种深度学习框架,主流的有 TensorFlow 和 PyTorch。

作者对于深度学习框架的选型决策主要有:

  • 能够支持 java 语言开发,因为作者在开发大型应用时使用的主要开发语言是 java
  • 框架支持移动端,因为作者为学习过程中准备的练习项目是一个移动端应用
  • 框架要成熟、社区活跃且被广泛应用,应为主流框架

TensorFlow 和 PyTorch 都能够满足上述要求,但是 TensorFlow 在第一项和第二项中占有优势,所以选择使用 TensorFlow。

作为一位在 IT 行业沉淀多年的开发者或者工程师,已经对大学期间学到的数学知识不再熟悉(“多元函数…… 求偏微分?那是什么东西?”)。然而,仍然希望在产品中加入一些与人工智能相关的功能,抑或需要将已有的深度学习模型部署到各种场景中。具体而言,包括:

  • 如何导出训练好的模型?
  • 如何在本机使用已有的预训练模型?
  • 如何在服务器、移动端、嵌入式设备甚至网页上高效运行模型?

TensorFlow 能帮助我们做什么?

TensorFlow 可以为以上的这些需求提供完整的解决方案。具体而言,TensorFlow 包含以下特性:

  • 训练流程

    1. 数据的处理 :使用 tf.data 和 TFRecord 可以高效地构建和预处理数据集,构建训练数据流。同时可以使用 TensorFlow Datasets 快速载入常用的公开数据集。
    2. 模型的建立与调试 :使用即时执行模式和著名的神经网络高层 API 框架 Keras,结合可视化工具 TensorBoard,简易、快速地建立和调试模型。也可以通过 TensorFlow Hub 方便地载入已有的成熟模型。
    3. 模型的训练 :支持在 CPU、GPU、TPU 上训练模型,支持单机和多机集群并行训练模型,充分利用海量数据和计算资源进行高效训练。
    4. 模型的导出 :将模型打包导出为统一的 SavedModel 格式,方便迁移和部署。
  • 部署流程

    1. 服务器部署 :使用 TensorFlow Serving 在服务器上为训练完成的模型提供高性能、支持并发、高吞吐量的 API。
    2. 移动端和嵌入式设备部署 :使用 TensorFlow Lite 将模型转换为体积小、高效率的轻量化版本,并在移动端、嵌入式端等功耗和计算能力受限的设备上运行,支持使用 GPU 代理进行硬件加速,还可以配合 Edge TPU 等外接硬件加速运算。
    3. 网页端部署 :使用 TensorFlow.js,在网页端等支持 JavaScript 运行的环境上也可以运行模型,支持使用 WebGL 进行硬件加速。

TensorFlow

  1. TensorFlow 官网地址:https://tensorflow.google.cn/?hl=zh-cn

  2. TensorFlow 生态系统

TensorFlow 生态系统
TensorFlow 生态系统
  1. 总体架构图

机器学习主要分为训练部署两个步骤。

在训练阶段,TensorFlow 不仅支持 Python,更提供对 Swift 语言和 JS 语言的支持,你可以选择你熟悉的语言来进行开发。

在部署阶段,TensorFlow 模型可以跑在不同的平台,支持服务器端部署的 TensorFlow Serving, 支持 Android,iOS 和嵌入式设备等端侧平台部署的 TensorFlow Lite,支持浏览器和 Node 服务器部署的 TensorFlow.js,以及包括 C 语言,Java 语言,Go 语言,C#语言,Rust 和 R 等多种语言。通过下面总体架构图,就能非常快速的理解整个 TensorFlow 的关键组成部分。

TensorFlow 架构图
TensorFlow 总体架构图
  • TensorFlow Hubopen in new window 是一个包含经过训练的机器学习模型的代码库,这些模型稍作调整便可部署到任何设备上。
  • tf.keras 是一个用于构建和训练深度学习模型的高阶 API,可用于快速设计原型、研究和生产环境使用。它具有易使用,模块化,可组合以及易于扩展等优点。Keras 是 TensorFlow 2.0 主要推荐的 API。
  • Premade Estimators,现在来看在 TensorFlow2 中可能不是那么重要了,先不管了
  • Distribution Strategy 自定义训练循环,提供了灵活性并且能够更好地控制训练。此外,它们也让调试模型和训练循环更加容易。

安装 TensorFlow

作者选用 Python 学习 TensorFlow,首先要有 Python 环境,本人使用 Python 3.12,编码工具使用 VsCode。

硬件环境

对于学习而言,硬件门槛并不高,大部分当前主流的个人电脑(即使没有 GPU)均可胜任,无需添置其他硬件设备。

创建虚拟环境并激活

提示

在使用 Python 过程中建议都要使用虚拟环境,虚拟环境可以隔离 Python 项目与项目之间的依赖冲突问题,虚拟环境中并没有独立的解释器,虚拟环境依赖主机的 Python 解释器。

作者常用的虚拟环境管理工具是 Python3 自带的 venv。

python -m venv myenv
cd myenv/Scripts
./activate

GPU 支持

你需要安装 NVIDIA 显卡驱动程序、CUDA Toolkit 和 cuDNN。作者没有 NVIDIA 显卡,学习环境中可以使用 CPU,所以跳过这一步。

安装 TensorFlow

pip install tensorflow

引入 TensorFlow

import tensorflow as tf

代码及其他

上次编辑于: