TensorFlow 是由 Google Brain 团队开发的开源机器学习框架,于 2015 年首次发布。它的核心特点是数据流图(Data Flow Graph) 计算,名称中的 "Tensor" 表示多维数组,"Flow" 表示数据流。
静态图(TF 1.x):先定义计算图,再执行
动态图(Eager Execution,TF 2.x 默认):即时执行,更易调试
CPU、GPU、TPU(张量处理单元)支持
移动设备(TensorFlow Lite)
浏览器(TensorFlow.js)
云端和边缘设备
Keras 集成(TF 2.x 中作为官方高级API)
Estimators API(用于分布式训练)
自定义层和模型支持
应用层(Keras等) ↓ 高级API(Layers, Datasets等) ↓ 中级API(自动微分、训练循环) ↓ 低级API(Tensor, Operation, Graph) ↓ 硬件层(CPU/GPU/TPU)
Tensors:多维数据数组
Operations:对张量的运算
Graph:操作和张量的计算图
Session(TF 1.x):执行计算图的环境
# TF 1.x 示例
import tensorflow as tf
# 定义计算图
x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)
z = tf.add(x, y)
# 创建会话执行
with tf.Session() as sess:
result = sess.run(z, feed_dict={x: 3.0, y: 4.5})# TF 2.x 示例(更简洁) import tensorflow as tf # 即时执行模式(默认) x = tf.constant([[1.0, 2.0]]) y = tf.constant([[2.0], [3.0]]) z = tf.matmul(x, y) # 立即计算 # 使用Keras API model = tf.keras.Sequential([ tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ])
# 顺序模型 model = tf.keras.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10) ]) # 函数式API inputs = tf.keras.Input(shape=(32,)) x = tf.keras.layers.Dense(64, activation='relu')(inputs) outputs = tf.keras.layers.Dense(10)(x) model = tf.keras.Model(inputs=inputs, outputs=outputs)
# 编译模型 model.compile(optimizer='adam', loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), metrics=['accuracy']) # 训练模型 history = model.fit(x_train, y_train, epochs=5, validation_split=0.2) # 评估和预测 test_loss, test_acc = model.evaluate(x_test, y_test) predictions = model.predict(x_new)
# 策略模式 strategy = tf.distribute.MirroredStrategy() with strategy.scope(): model = tf.keras.Sequential([...]) model.compile(...) model.fit(...)
TensorFlow Extended (TFX):生产级ML管道
TensorFlow Lite:移动和嵌入式设备
TensorFlow.js:浏览器和Node.js
TensorFlow Probability:概率推理
TensorFlow Recommenders:推荐系统
TensorBoard:可视化工具
TensorFlow Hub:预训练模型库
TensorFlow Datasets:标准数据集
MLIR:编译器基础设施
图像分类、目标检测
图像生成(GANs)
图像分割
文本分类、情感分析
机器翻译
语音识别
推荐系统
强化学习
时间序列分析
科学计算
优势:
生产就绪:完善的部署工具链
社区强大:丰富的资源和预训练模型
硬件支持:广泛的硬件优化
企业支持:Google持续投入和维护
挑战:
学习曲线:API变化较快(特别是1.x到2.x)
资源消耗:相对较大
竞争框架:PyTorch等框架的竞争
安装命令
# CPU版本 pip install tensorflow # GPU版本(需要CUDA支持) pip install tensorflow-gpu
快速验证
import tensorflow as tf
print(tf.__version__)
print("GPU可用:", tf.config.list_physical_devices('GPU'))
# 简单测试
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()官方资源:
官方网站:tensorflow.org
GitHub仓库:github.com/tensorflow/tensorflow
TensorFlow Tutorials
TensorFlow API文档
实践建议:
从 TensorFlow 2.x 开始学习
掌握 Keras API 的基本用法
理解张量运算和自动微分
学习使用 TensorBoard 可视化
实践完整的 ML 项目流程
TensorFlow 作为一个成熟的机器学习框架,特别适合需要生产部署、跨平台支持和分布式训练的复杂应用场景。对于研究快速原型开发,也可考虑与 PyTorch 结合使用。
|
|---|