TensorFlow是什么?对自动驾驶有什么帮助? (转载)
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
- 智能定价
- 搜索排序
- 房源推荐
- 时间线排序
- 广告推荐
- 垃圾信息过滤
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基础教程
- 数据加载和预处理
做几个入门项目
- MNIST手写数字识别(经典入门项目)
- CIFAR-10图像分类(进阶一点)
- 简单的文本分类
楼主当初在这个阶段卡了挺久,主要是概念不清楚。建议多看代码,少纠结原理,先把东西跑起来!
第三阶段:实战项目(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这玩意,说难也难,说简单也简单。关键是多动手,别光看教程!
楼主当初也是从完全小白过来的,现在能独立做项目、解决工作中的问题。所以只要坚持,你也一定可以!
学习建议总结:
- 不要一开始就啃理论,先把代码跑起来
- 每天写代码,哪怕就半小时
- 遇到问题多搜索,90%的坑别人都踩过
- 加入技术社区,多交流
- 做完整项目,而不是只做教程里的例子
有问题欢迎留言讨论!我会尽量回复。
如果这篇文章对你有帮助,点个赞让我知道!你的支持是我持续更新的动力💪
相关文章推荐:
- PyTorch vs TensorFlow 2025最新对比
- 自动驾驶中的深度学习应用
- 零基础学机器学习完整路线图
更多推荐

所有评论(0)