649fba57c84549bd91b477ef88992c2f


TensorFlow到底是个啥?

简单说,TensorFlow就是Google搞出来的一套机器学习工具,2015年开源的,现在基本上做AI的都绕不开它。

很多人一听”机器学习框架”就觉得高大上,其实说白了就是帮你写AI程序的工具包。就像你装修房子,TensorFlow提供了各种现成的工具和材料,你只需要按需求组装就行,不用自己从零打造锤子钉子。

为啥叫TensorFlow这个名字?
  • Tensor(张量)= 就是多维数组,存数据用的
  • Flow(流)= 数据在程序里流来流去做计算

举个栗子🌰:

一维张量 = [1, 2, 3, 4]           # 就是个列表
二维张量 = [[1,2], [3,4]]         # 矩阵
三维张量 = [[[...]], [[...]]]    # 图像数据(长x宽x颜色通道)

先说说TensorFlow的发家史

作为一个老牌框架,TensorFlow的进化史还挺有意思的:

2011年 – Google内部用第一代系统DistBelief(没开源,我们也用不到😂)

2015年11月 – TensorFlow 1.0横空出世,开源免费

  • 当时觉得这玩意学起来真TM难
  • 要写一大堆Session、Placeholder
  • 文档看得我头大

2017年2月 – 1.0稳定版发布

  • 很多公司开始用在生产环境
  • 那时候PyTorch还没火起来

2019年10月 – TensorFlow 2.0重磅更新(划重点!)

  • 这个版本改动超级大,基本上重写了
  • 加入了Eager Execution(即时执行)
  • 深度整合Keras,写代码变简单了
  • 楼主就是从2.0开始入坑的

现在 – 已经到2.14+版本,越来越成熟


TensorFlow 1.x vs 2.x 的区别(重要!)

这个必须单独讲,很多教程没说清楚导致新手一脸懵逼。

TensorFlow 1.x时代(已经淘汰了)
# 1.x的代码风格(现在别这么写了!)
import tensorflow as tf

# 先定义计算图
a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
c = a + b

# 再创建会话执行
with tf.Session() as sess:
    result = sess.run(c, feed_dict={a: 3, b: 5})
    print(result)  # 输出8

问题在哪?

  • 写代码的时候看不到结果,只有运行才知道对不对
  • 调试超级麻烦,出错了不知道哪里有问题
  • 代码不直观,像在写”配置文件”
TensorFlow 2.x时代(现在主流)
# 2.x的代码风格(推荐!)
import tensorflow as tf

# 直接计算,立即得到结果
a = tf.constant(3.0)
b = tf.constant(5.0)
c = a + b
print(c)  # 直接输出8.0

# 就像写普通Python代码一样!

改进了啥?

  • Eager Execution默认开启 – 写完立刻看到结果
  • 集成Keras – 高级API,写神经网络像搭积木
  • 更Pythonic – 不用学那么多TensorFlow特有的概念
  • 调试友好 – 可以用print、断点,跟普通代码一样

楼主建议: 现在学就直接上2.x,1.x的资料可以跳过了!


TensorFlow的三个核心概念

虽然2.x简化了很多,但这三个基础概念还是要懂:

1. 张量(Tensor)- 数据容器
import tensorflow as tf

# 各种张量的创建
scalar = tf.constant(3.14)                    # 标量(0维)
vector = tf.constant([1, 2, 3])               # 向量(1维)
matrix = tf.constant([[1,2], [3,4]])          # 矩阵(2维)
tensor3d = tf.constant([[[1,2],[3,4]]])       # 3维张量

# 查看张量属性
print(matrix.shape)   # (2, 2) - 形状
print(matrix.dtype)   # float32 - 数据类型

实际应用:

  • 图像 = 3维张量 [高度, 宽度, RGB通道]
  • 视频 = 4维张量 [时间, 高度, 宽度, RGB通道]
  • 一批图像 = 4维张量 [批次大小, 高度, 宽度, 通道]
2. 计算图(Computational Graph)- 运算流程

虽然2.x用户不用手动管理,但理解这个概念很重要:

# 计算图示例
x = tf.constant(2.0)
y = tf.constant(3.0)
z = x * y + x  # TensorFlow会自动构建计算图

# 这个图是:x和y相乘 → 结果加x → 得到z

好处:

  • TensorFlow可以自动优化计算顺序
  • 支持自动求导(反向传播的基础)
  • 可以并行计算,利用GPU加速
3. 变量(Variable)- 可训练参数
# 创建变量(模型参数)
weight = tf.Variable(tf.random.normal([784, 10]))
bias = tf.Variable(tf.zeros([10]))

# 变量可以被修改(普通张量不行)
weight.assign(weight * 0.9)  # 更新权重

什么时候用变量?

  • 神经网络的权重和偏置
  • 需要在训练过程中更新的参数
  • 需要保存和恢复的模型参数

TensorFlow能干啥?(应用场景)

1. 图像相关(计算机视觉)

物体检测 – 识别图片里有啥东西

  • 自动驾驶:检测车辆、行人、交通标志
  • 安防监控:人脸识别、异常检测
  • 手机相机:美颜、滤镜、AR特效

图像分类 – 判断图片属于哪一类

  • 医疗影像:识别X光片、CT扫描的病灶
  • 工业质检:检测产品缺陷
  • 农业:识别农作物病虫害

图像分割 – 把图片每个像素分类

  • 自动驾驶:区分道路、人行道、车辆
  • 医学:分割器官、肿瘤
  • 视频会议:背景虚化
2. 文本相关(自然语言处理)

机器翻译

  • Google翻译就是用TensorFlow做的
  • 楼主之前做过中英翻译小项目

情感分析

  • 分析评论是好评还是差评
  • 社交媒体舆情监测
  • 客服系统自动分类

聊天机器人

  • 客服机器人
  • 智能助手
  • 对话生成
3. 语音相关

语音识别 – 语音转文字

  • Siri、小爱同学这些
  • 会议记录转写
  • 语音搜索

语音合成 – 文字转语音

  • 有声读物
  • 导航语音
  • 智能客服
4. 推荐系统

个性化推荐

  • 淘宝、京东的商品推荐
  • 抖音、B站的视频推荐
  • 网易云音乐的歌单推荐

楼主公司就在用TensorFlow做推荐算法,效果确实比传统方法好不少。

5. 自动驾驶(重点!)

这个是现在最火的应用方向:

  • 感知:识别周围环境(车、人、路标)
  • 预测:预判其他车辆行人的行为
  • 决策:规划行驶路径
  • 控制:控制方向盘油门刹车

Tesla、小鹏、蔚来这些车企都在大量使用深度学习技术。


TensorFlow的全家桶(生态系统)

Google不只是做了个框架,而是搭建了一整套工具链:

TensorFlow生态
├── TensorFlow Core        # 核心库(我们主要用这个)
├── Keras                  # 高级API(已集成到Core)
├── TensorFlow Lite        # 手机和嵌入式设备用
├── TensorFlow.js          # 在浏览器里跑机器学习
├── TensorFlow Serving     # 模型部署服务
├── TFX                    # 生产级机器学习管道
├── TensorFlow Hub         # 预训练模型库(直接拿来用)
└── TensorBoard            # 可视化工具(超好用!)
重点说几个常用的:

TensorFlow Lite

  • 把模型压缩后部署到手机App
  • 楼主做过一个手机端的图像识别,用的就是Lite
  • 模型从200MB压缩到10MB,速度还更快

TensorFlow.js

  • 直接在网页里跑模型,不用后端
  • 做过人脸识别网页,打开浏览器就能用
  • 隐私性好,数据不用传到服务器

TensorBoard

  • 可视化训练过程,看loss曲线
  • 调试神经网络结构
  • 分析模型性能
  • 这个工具真的太重要了!后面会专门讲

TensorFlow Hub

  • Google提供的预训练模型库
  • 直接下载拿来用,省得自己训练
  • 有几百个现成模型,覆盖各种任务

TensorFlow的优势(为啥要学它?)

1. 生态完善,从研究到生产一条龙

很多框架只适合做研究(比如早期的PyTorch),但TensorFlow从一开始就考虑工业部署:

  • 开发阶段:用Keras快速原型
  • 训练阶段:分布式训练,支持多机多卡
  • 调试阶段:TensorBoard可视化
  • 优化阶段:模型压缩、量化
  • 部署阶段:TensorFlow Serving、TF Lite
  • 监控阶段:生产环境性能监控
2. 大厂背书,经过实战检验

Google自己就在用:

  • 搜索排序:每天几十亿次查询
  • Gmail:智能回复、垃圾邮件过滤
  • Google Photos:人脸识别、图片分类
  • Google翻译:100多种语言翻译

其他大公司也在用:

  • Uber:自动驾驶、需求预测
  • Airbnb:价格推荐、搜索排序
  • Twitter:时间线排序、内容推荐
  • 小米:智能家居、语音助手
3. 硬件支持牛逼

TensorFlow对各种硬件都优化得很好:

GPU加速

  • NVIDIA CUDA支持完善
  • 比CPU快10-100倍
  • 楼主的GTX 1660也能愉快训练

TPU支持(Google自研芯片)

  • 专门为TensorFlow优化
  • 比GPU还快3-5倍
  • Google Cloud可以租用

CPU优化

  • 英特尔MKL库优化
  • 没显卡也能跑(就是慢点)

移动端

  • ARM处理器优化
  • 手机上也能跑得动
4. 学习资源丰富

官方文档

  • 中文文档质量不错
  • 教程从入门到进阶都有
  • 代码示例丰富

社区活跃

  • Stack Overflow上问题都有解答
  • GitHub上开源项目无数
  • 国内外博客教程一大堆

课程资源

  • Coursera有吴恩达的深度学习课
  • Udacity有TensorFlow专项课
  • B站上免费教程也很多

楼主当初学的时候,基本上遇到的问题都能搜到答案。


TensorFlow vs 其他框架(选择困难症看这里)

很多人纠结要学TensorFlow还是PyTorch,我说说自己的看法:

TensorFlow的优势

✅ 部署方便

  • 移动端、网页、服务器全覆盖
  • 工具链完整,生产环境成熟

✅ 工业界认可

  • 大公司都在用
  • 招聘需求多

✅ 稳定性好

  • 版本迭代谨慎
  • 向后兼容做得不错

✅ 硬件生态

  • TPU原生支持
  • 各种加速器优化好
TensorFlow的劣势

❌ 学习曲线

  • 虽然2.0简化了,但还是比PyTorch陡峭
  • 概念多,初学者容易懵

❌ 调试体验

  • 虽然有Eager模式,但还是不如PyTorch直观
  • 错误信息有时候看不懂

❌ 研究社区

  • 学术界PyTorch用得更多
  • 最新论文代码大多是PyTorch
我的建议

学TensorFlow如果你:

  • 想做工业应用、产品落地
  • 需要部署到移动端、网页
  • 公司用的是TensorFlow
  • 想进大厂(很多大厂用TF)

学PyTorch如果你:

  • 做学术研究、读博士
  • 想快速做原型验证
  • 喜欢写代码更灵活
  • 复现论文代码

楼主的经验: 最好两个都会!我现在做项目,原型用PyTorch快速验证,生产部署用TensorFlow。学会一个之后,学另一个也很快,核心思想是相通的。


谁在用TensorFlow?

国外公司

Google(必须的)

  • 几乎所有产品都用到机器学习
  • 搜索、广告、Android、云服务

Uber

  • 自动驾驶(ATG部门)
  • 需求预测
  • 动态定价

Airbnb

  • 智能定价
  • 搜索排序
  • 房源推荐

Twitter

  • 时间线排序
  • 广告推荐
  • 垃圾信息过滤

Dropbox

  • 文档OCR
  • 图片搜索
  • 智能分类
国内公司

小米

  • 小爱同学语音助手
  • MIUI系统优化
  • 智能家居

滴滴

  • 需求预测
  • 路径规划
  • 动态定价

美团

  • 外卖配送路径优化
  • 个性化推荐
  • 图像识别(菜品识别)

字节跳动

  • 抖音推荐算法
  • 视频理解
  • 内容审核

入门建议(楼主的经验之谈)

第一阶段:环境搭建(1-2天)

Python环境

# 推荐用Anaconda
conda create -n tf python=3.9
conda activate tf

# 安装TensorFlow(CPU版本)
pip install tensorflow

# 如果有NVIDIA显卡,装GPU版本
pip install tensorflow-gpu

# 测试是否安装成功
python -c "import tensorflow as tf; print(tf.__version__)"

常见坑:

  • GPU版本需要先装CUDA和cuDNN,版本要对应
  • Windows上装GPU版本比较麻烦,建议用WSL2或者直接用Colab
  • M1/M2 Mac要装tensorflow-metal才能用GPU
第二阶段:基础学习(2-3周)

跟着官方教程走一遍

  • TensorFlow官网的Quickstart
  • Keras基础教程
  • 数据加载和预处理

做几个入门项目

  1. MNIST手写数字识别(经典入门项目)
  2. CIFAR-10图像分类(进阶一点)
  3. 简单的文本分类

楼主当初在这个阶段卡了挺久,主要是概念不清楚。建议多看代码,少纠结原理,先把东西跑起来!

第三阶段:实战项目(1-2个月)

选一个自己感兴趣的方向深入:

  • 计算机视觉:目标检测、图像分割
  • 自然语言处理:文本分类、情感分析
  • 推荐系统:协同过滤、深度学习推荐

重点:一定要做完整项目! 从数据收集、清洗、模型训练到部署,走完整个流程。这比看十本书都有用。

第四阶段:进阶提升(持续学习)
  • 学习模型优化技巧
  • 了解分布式训练
  • 掌握模型部署
  • 跟踪最新论文

学习资源推荐

官方资源

TensorFlow官网

  • tensorflow.org/tutorials
  • 中文版:tensorflow.google.cn

TensorFlow GitHub

  • 看源码学习(高级)
  • 提Issue、看别人的问题
视频课程

B站

  • 搜”TensorFlow教程”一堆
  • 莫烦Python的TensorFlow系列(入门推荐)
  • 3Blue1Brown的神经网络可视化(理解原理必看)

Coursera

  • 吴恩达的深度学习专项课
  • TensorFlow Developer专业证书课程
书籍

入门:

  • 《Python深度学习》(Keras作者写的)
  • 《动手学深度学习》(李沐,有TensorFlow版本)

进阶:

  • 《深度学习》(花书,理论向)
  • 《TensorFlow实战》
实战项目

Kaggle

  • 有很多TensorFlow的竞赛和教程
  • 可以直接在线跑代码,有免费GPU

GitHub

  • awesome-tensorflow
  • 搜索”tensorflow projects”

常见问题解答

Q1: TensorFlow难学吗?

A: 2.0之后简单很多了。如果你有Python基础,入门不难。主要是概念多,需要时间消化。楼主用了2-3个月能独立做项目。

Q2: 需要很强的数学基础吗?

A: 入门阶段不需要!懂基本的矩阵运算、求导就够了。深入研究才需要更多数学知识。

Q3: 电脑配置要求高吗?

A: 训练大模型需要好显卡。但学习阶段,普通电脑也够用。实在不行用Google Colab,免费GPU。

Q4: TensorFlow 1.x的代码还能用吗?

A: 大部分可以通过兼容层运行,但建议直接学2.x,1.x已经过时了。

Q5: 先学TensorFlow还是先学机器学习理论?

A: 楼主建议边学边做。先跑通几个项目,有感觉了再系统学理论。纯学理论容易放弃。


接下来的计划

这篇是系列第一篇,主要讲了TensorFlow是什么、能做什么、生态如何。

后续计划更新:

📝 第二篇:环境搭建详细教程(Windows/Mac/Linux) 📝 第三篇:Keras快速入门 – 30分钟搭建第一个神经网络 📝 第四篇:MNIST手写数字识别实战(代码详解) 📝 第五篇:图像分类进阶 – CIFAR-10项目 📝 第六篇:TensorBoard使用指南 📝 第七篇:模型保存、加载和部署 📝 更多…

每篇都会配完整代码和踩坑记录。


最后说几句

TensorFlow这玩意,说难也难,说简单也简单。关键是多动手,别光看教程!

楼主当初也是从完全小白过来的,现在能独立做项目、解决工作中的问题。所以只要坚持,你也一定可以!

学习建议总结:

  1. 不要一开始就啃理论,先把代码跑起来
  2. 每天写代码,哪怕就半小时
  3. 遇到问题多搜索,90%的坑别人都踩过
  4. 加入技术社区,多交流
  5. 做完整项目,而不是只做教程里的例子

有问题欢迎留言讨论!我会尽量回复。

如果这篇文章对你有帮助,点个赞让我知道!你的支持是我持续更新的动力💪


相关文章推荐:

  • PyTorch vs TensorFlow 2025最新对比
  • 自动驾驶中的深度学习应用
  • 零基础学机器学习完整路线图

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐