趣解TensorFlow之入门篇

发布于:2025-06-14 ⋅ 阅读:(23) ⋅ 点赞:(0)

🤔 TensorFlow 简介

TensorFlow 是一个用来搭建和训练神经网络的 Python 工具包,谷歌开发的,专门用来搞人工智能的。

它可以帮你干这些事:

  • 训练模型识别图片
  • 搭建聊天机器人
  • 做语音识别
  • 进行预测、分类、翻译……

如果你想学 AI、深度学习,TensorFlow 就是你绕不开的框架之一。

😎 TensorFlow 的核心概念

🥱Tensor 概念

Tensor(张量)是 TensorFlow 名字的来源,它是:

  • 一维张量 = 向量(比如 [1, 2, 3]
  • 二维张量 = 矩阵(比如 [[1,2],[3,4]]
  • 三维、四维…… = 多维数组

用 Python/Numpy 的话说就是:Tensor = 高维数组

TensorFlow 就是围绕 “Tensor 的流动” 来设计的:把 Tensor 放进图里,经过各种操作,最后输出结果。

🥱Graph概念

TensorFlow 早期版本是构建一个静态“计算图”:

  • 每个操作(加减乘除、神经网络层)是一个“节点”
  • 节点之间的数据(Tensor)是“边”

就像一个拼装好的电路板,数据流从输入进来,经过图中一系列变换,输出结果。

在 2.x 版本之后,TensorFlow 更偏向“动态图”(即时执行),类似 PyTorch,更灵活了。

🏋️ 安装 TensorFlow

pip install tensorflow

安装完之后你就可以在 Python 里导入:

import tensorflow as tf
print(tf.__version__)

🔍 示例 1:最简单的神经网络

我们用 TensorFlow 搭一个最基础的模型来识别手写数字(MNIST 数据集)

import tensorflow as tf
from tensorflow.keras import layers, models
from tensorflow.keras.datasets import mnist

# 加载数据
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train / 255.0
x_test = x_test / 255.0

# 建立模型
model = models.Sequential([
    layers.Flatten(input_shape=(28, 28)),  # 把28x28图片拉平为784维向量
    layers.Dense(128, activation='relu'),  # 第一层,全连接,128个神经元
    layers.Dropout(0.2),                   # 丢弃层,防止过拟合
    layers.Dense(10, activation='softmax') # 输出层,10类
])

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

# 训练模型
model.fit(x_train, y_train, epochs=5)

# 测试模型
model.evaluate(x_test, y_test)

输出如下:

Epoch 1/5
60000/60000 [==============================] - 5s 83us/sample - loss: 0.3 - accuracy: 0.91
...

是不是很简单?几行代码就能搭建出一个基本的分类神经网络!

🔍 示例 2:自定义神经网络

我们自己写一个带两个隐藏层的网络:

model = tf.keras.Sequential()
model.add(layers.Dense(64, activation='relu', input_shape=(784,)))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))

训练方法与上面完全一样。

🔍 示例 3:保存和加载模型

训练好了想保存:

model.save('my_model.h5')

下次直接加载:

model = tf.keras.models.load_model('my_model.h5')

🔍 示例 4:预测新数据

pred = model.predict(x_test[0:1])  # 对第一张图片做预测
print(pred)
print("预测结果:", tf.argmax(pred, axis=1).numpy())

🔍 示例 5:自定义训练循环

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy()
optimizer = tf.keras.optimizers.Adam()

for epoch in range(5):
    for i in range(len(x_train)):
        with tf.GradientTape() as tape:
            x = x_train[i:i+1]
            y = y_train[i:i+1]
            pred = model(x)
            loss = loss_fn(y, pred)
        grads = tape.gradient(loss, model.trainable_weights)
        optimizer.apply_gradients(zip(grads, model.trainable_weights))

😁优势总结

特性 描述
跨平台 可以在 CPU、GPU、以及TPU(AI) 上运行
自动求导 计算导数超方便
可视化 TensorBoard 可以图形化训练过程
模型部署 TF Serving / Lite / JS 都支持
社区活跃 文档多、教程多、开源项目多

🤔 学习建议

  1. 学会基本的 Python 和 Numpy
  2. 理解神经网络基础概念(激活函数、损失函数、前向/反向传播)
  3. 看 TensorFlow 官方教程:https://www.tensorflow.org/tutorials
  4. B 站、YouTube 关键词搜索:“TensorFlow 入门实战”
  5. 多模仿、多改代码、多练习!

🫡 推荐资料

  • 《Deep Learning with Python(Keras作者写的)》
  • TensorFlow 官方教程:https://www.tensorflow.org/tutorials
  • 中文版《动手学深度学习》配合 tf.keras 使用
  • GitHub 上的 tensorflow/models 项目

😍 最后的话

TensorFlow 虽然刚开始看起来有点“重量级”,但一旦掌握基本套路,建模效率很高,非常适合搞工业级项目。
不怕不会,就怕不写。

请添加图片描述


网站公告

今日签到

点亮在社区的每一天
去签到