当前位置: 首页 > news >正文

趣解TensorFlow之入门篇

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

请添加图片描述

相关文章:

  • 在 WinForms 中制作无边框窗体通过鼠标拖动移动和调整大小,难点是我窗体上被标题栏和状态栏dock之后很难选中
  • 【Qt】工具介绍和信号与槽机制
  • 深度学习驱动的验证码识别实战:从原理到高并发工业部署
  • docker compose部署kafka
  • 如何为加壳保护后的程序提供调试支持
  • C++11可变参数模板从入门到精通
  • Arduino入门教程:​​​​​​​2、代码基础
  • manpath: can‘t set the locale; make sure $LC_* and $LANG are correct
  • CVPR 2025 | Magma:多模态AI智能体的基础模型
  • 【搜狗输入法】如何使用自定义标点设置来输出直角引号
  • 电路图识图基础知识-电动机软启动器技术解析与应用(二十五)
  • 连续函数的极限性质——极限与连续函数的交换性
  • M - 中位数
  • 解决 element el-date-picker type=“daterange“ 会导致样式错乱的问题
  • 移动端1px问题解决方案汇总
  • 【6S.081】Lab1 Xv6 and Unix utilities
  • Django全栈开发实战与架构思考
  • Python 训练营打卡 Day 44-预训练模型
  • 爬虫系统异常监控并邮件通知源码
  • @DNS服务器搭建配置优化-Linux
  • 淘宝客如何做自己的网站/搜索最全的搜索引擎
  • 商城小程序方案/seo网站推广主要目的不包括
  • 江油市规划和建设局网站/外贸营销策略都有哪些
  • 宁晋县建设局网站/软件推广方案经典范文
  • 网站web建设/关键词优化方法有什么步骤
  • 廊坊做网站外包/武汉网络推广seo