Python TensorFlow库【深度学习框架】全面讲解与案例

边写代码零食不停口 盼盼麦香鸡味块卡乐比(Calbee)薯条三兄弟 独立小包好时kisses多口味巧克力糖老金磨方【黑金系列】黑芝麻丸

边写代码边贴面膜 事业美丽两不误 DR. YS 野森博士+【AOUFSE/澳芙雪特证】377专研美白淡斑面膜组合 优惠劵

别光顾写代码更要多喝茶水,提神有营养 六安瓜片茶叶茶香二级200g 2025年新茶雨前盒装自己喝

让AI成为我们的得力助手:《用Cursor玩转AI辅助编程——不写代码也能做软件开发》


一、TensorFlow 基础知识

1. 核心概念

  • 张量 (Tensor): 多维数组,是 TensorFlow 的基本数据单位(标量、向量、矩阵等)。
  • 计算图 (Graph): 早期版本中的静态图机制(TF2.x 默认启用动态图)。
  • 会话 (Session): 在 TF1.x 中用于执行计算图(TF2.x 中已弃用)。

2. 基本操作

import tensorflow as tf

# 创建张量
a = tf.constant([[1, 2], [3, 4]])  # 形状 (2, 2)
b = tf.constant([[5, 6], [7, 8]])

# 张量运算
c = tf.add(a, b)        # 逐元素加法
d = tf.matmul(a, b)     # 矩阵乘法

print("加法结果:\n", c.numpy())
print("矩阵乘法结果:\n", d.numpy())

二、高级用法

1. Keras API 快速建模

from tensorflow.keras import layers, models

# 构建顺序模型
model = models.Sequential([
    layers.Dense(64, activation='relu', input_shape=(784,)),
    layers.Dropout(0.2),
    layers.Dense(10, activation='softmax')
])

# 编译模型
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# 打印模型结构
model.summary()

2. 自定义训练循环

# 自定义损失函数和训练步骤
@tf.function
def train_step(inputs, labels):
    with tf.GradientTape() as tape:
        predictions = model(inputs)
        loss = tf.keras.losses.sparse_categorical_crossentropy(labels, predictions)
    gradients = tape.gradient(loss, model.trainable_variables)
    optimizer.apply_gradients(zip(gradients, model.trainable_variables))
    return loss

三、深入进阶

1. 混合精度训练

# 启用混合精度策略
from tensorflow.keras.mixed_precision import set_global_policy
set_global_policy('mixed_float16')

# 模型会自动使用混合精度
model = models.Sequential([
    layers.Dense(1024, activation='relu'),  # 自动转为 float16
    layers.Dense(10, dtype='float32')       # 输出层保持 float32
])

2. 分布式训练

# 多GPU训练策略
strategy = tf.distribute.MirroredStrategy()

with strategy.scope():
    model = models.Sequential([...])
    model.compile(...)

model.fit(train_dataset, epochs=10)

四、完整案例

案例1:图像分类(CNN)

# 加载数据
(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()

# 预处理
train_images = train_images.reshape((60000, 28, 28, 1)).astype('float32') / 255

# 构建CNN模型
model = models.Sequential([
    layers.Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)),
    layers.MaxPooling2D((2,2)),
    layers.Flatten(),
    layers.Dense(10, activation='softmax')
])

# 训练配置
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# 训练模型
history = model.fit(train_images, train_labels,
                    epochs=5,
                    validation_split=0.2)

# 评估模型
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'Test accuracy: {
     
     test_acc}')

五、学习路径建议

1. 分阶段学习

  1. 基础阶段(2周):

    • 张量操作
    • 全连接网络
    • Keras API 基础
  2. 中级阶段(3周):

    • CNN/RNN实现
    • 数据管道(tf.data)
    • 模型保存/加载
  3. 高级阶段(4周):

    • 自定义训练循环
    • 分布式训练
    • TensorFlow Serving 部署

2. 推荐资源

  • 官方文档:tensorflow.org
  • 实战书籍:《Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow》
  • 社区:Stack Overflow(标签 tensorflow)、GitHub 开源项目

六、关键代码示例

自定义层示例

class CustomDense(layers.Layer):
    def __init__(self, units=32):
        super().__init__()
        self.units = units

    def build(self, input_shape):
        # 初始化权重
        self.w = self.add_weight(
            shape=(input_shape
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老胖闲聊

创作不易,您的打赏是最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值