跳到主要内容

TensorFlow 简介

TensorFlow 是 Google 开发的开源深度学习框架,是目前最流行的机器学习平台之一。本教程将带你从零开始学习 TensorFlow 2.x。

什么是 TensorFlow?

TensorFlow 是一个端到端的机器学习平台,主要特点包括:

  • 多维数组计算:类似 NumPy,支持张量运算
  • GPU 加速:支持 GPU 和分布式计算
  • 自动微分:内置自动求导功能
  • 模型构建:提供 Keras 高级 API 用于快速构建模型
  • 跨平台部署:支持服务器、移动端、Web 等多种平台

TensorFlow vs PyTorch

特性TensorFlowPyTorch
计算模式静态图 + 动态图动态图
学习曲线较陡峭相对平缓
部署支持TensorFlow Serving、Lite、JSTorchServe、ONNX
生产环境成熟稳定快速发展
社区活跃度非常高

核心概念

张量(Tensor)

张量是 TensorFlow 中的基本数据单位,是多维数组的抽象表示。

import tensorflow as tf

# 创建张量
x = tf.constant([[1, 2], [3, 4]])
print(x)
# tf.Tensor(
# [[1 2]
# [3 4]], shape=(2, 2), dtype=int32)

# 张量的属性
print(x.shape) # (2, 2)
print(x.dtype) # <dtype: 'int32'>

计算图(Computational Graph)

TensorFlow 使用计算图来表示计算过程。在 TensorFlow 2.x 中,默认使用即时执行模式(Eager Execution),同时也支持通过 @tf.function 将函数编译为计算图以提升性能。

# 即时执行
x = tf.constant(3)
y = tf.constant(4)
print(x + y) # tf.Tensor(7, shape=(), dtype=int32)

# 使用计算图
@tf.function
def add(a, b):
return a + b

print(add(x, y)) # tf.Tensor(7, shape=(), dtype=int32)

变量(Variable)

变量用于存储模型的可训练参数,与普通张量不同,变量的值可以被修改。

# 创建变量
w = tf.Variable([[1.0, 2.0], [3.0, 4.0]])

# 修改变量值
w.assign([[5.0, 6.0], [7.0, 8.0]])
w.assign_add([[1.0, 1.0], [1.0, 1.0]])

print(w)
# <tf.Variable 'Variable:0' shape=(2, 2) dtype=float32, numpy=
# array([[6., 7.],
# [8., 9.]], dtype=float32)>

TensorFlow 2.x 的优势

相比 TensorFlow 1.x,2.x 版本有以下重大改进:

  1. 默认即时执行:代码可以像普通 Python 一样运行,便于调试
  2. 简化的 API:删除了大量过时的 API,统一使用 Keras
  3. 更好的错误提示:错误信息更加清晰易懂
  4. 更简单的模型保存:使用 SavedModel 格式,统一保存和加载方式

学习路线

本教程的学习路线如下:

  1. 环境搭建:安装 TensorFlow 和配置开发环境
  2. 张量基础:学习张量的创建、运算和操作
  3. 变量与自动微分:理解变量和梯度计算
  4. Keras 模型构建:使用 Sequential 和 Functional API 构建模型
  5. 模型训练:学习训练循环、损失函数和优化器
  6. 卷积神经网络:构建图像分类模型
  7. 模型保存与加载:保存训练好的模型
  8. 实战项目:完成实际项目练习

小结

本章介绍了 TensorFlow 的基本概念和特点。TensorFlow 是一个功能强大的深度学习框架,适合从研究到生产的各种场景。在接下来的章节中,我们将深入学习 TensorFlow 的各个方面。