2026深度学习入门:PyTorch还是TensorFlow?一文讲透框架选择
很多人在入门深度学习时,最先卡住的往往不是反向传播,也不是卷积神经网络,而是一个特别现实的问题:TensorFlow 和 PyTorch,我到底该学哪个?
你在 CSDN、知乎、B 站上搜这个问题,能看到各种答案,有说 TensorFlow 适合工业部署的,有说 PyTorch 适合做研究的,还有说“小孩子才做选择,两个都要学”的。这些说法都对,但对一个刚准备入门的开发者来说,它们并没有真正解决问题——因为你需要的不是评价,而是一条确定的路径。
这篇文章不会让你“两个都学”。我会结合 2026 年的技术环境,从框架本质、学习成本、部署方式、就业方向四个角度,给你一个可以直接执行的结论。同时,我会给出 TensorFlow 和 PyTorch 从环境搭建到训练 MNIST 手写数字识别的完整示例,让你不只是听观点,还能把代码跑起来。
如果你正在纠结入门框架,或者已经被各种资料绕晕了,这篇文章值得读完,也建议先收藏备用。
1. 这篇文章真正要解决的问题
先说说这个问题的时代背景。放在五六年前,选择 TensorFlow 几乎不需要犹豫,因为它背后有强大的工业落地生态,而且 PyTorch 1.0 还没有真正成熟。但到今天,情况已经发生了明显变化。
如果你关注过去两年的论文、开源项目、AI 竞赛,会发现 PyTorch 在学术界的使用率已经占了绝对主流。Transformer、BERT、GPT 系列等几乎所有重要的深度学习模型,官方实现基本都是 PyTorch 版本。与此同时,TensorFlow 并没有退出历史舞台,它仍然大量存在于推荐系统、广告点击率预估、移动端推理、生产环境等业务场景中。
那么,问题就来了:一个 2026 年准备入门深度学习的人,应该以哪个框架为主线来学习?
这个问题的答案,决定了你接下来几个月看的教程、写的代码、踩的坑。它不只是“选一个工具”这么简单,它会影响你的学习效率和求职方向。
先说我的结论,后面再用技术细节来支撑:
**如果你是第一次接触深度学习,主线学习 PyTorch,同时花一周时间了解 TensorFlow/Keras 的基本用法。**但如果你是在传统企业做工程开发,团队中已经有大量 TensorFlow 存量项目,那么从 TensorFlow 入手反而更务实。
听起来有点像没说?不是的。关键在于后面这句话:**不要把“学框架”当成“学深度学习”。**无论是 TensorFlow 还是 PyTorch,它们都只是实现深度学习的工具。你真正要掌握的,是模型结构、训练流程、数据处理、评估方法这些底层能力。框架可以换,但底层能力是通用的。
2. 先理解框架的历史与定位
要回答“2026 年深度学习入门选哪个框架”,必须先搞清楚 TensorFlow 和 PyTorch 的诞生背景。这不是考古,而是理解它们设计哲学的关键。
2.1 TensorFlow:工业工程的产物
TensorFlow 由 Google 大脑团队开发,2015 年开源,2017 年推出 1.0 版本。它的设计目标是大规模分布式训练和工业部署。从诞生之初,TensorFlow 就更像一个“机器学习平台”,而不是一个“研究工具包”。
TensorFlow 1.x 时代使用的是静态计算图(Static Graph)。简单理解,就是你先把整个计算流程定义好,然后再把数据“喂”进去执行。这种设计的好处是:计算图可以整体优化,适合大规模分布式训练,部署到服务器上运行时效率高。但坏处也很明显——调试极其不方便。你没法在计算图中间打印一个变量的值,因为在你 print 的时候,图还没有真正执行。
后来 TensorFlow 2.x 引入了 Keras 作为官方高级 API,默认开启 Eager Execution(动态执行模式),这其实是向 PyTorch 的风格靠拢。但多年积累的工程习惯和历史包袱,让 TensorFlow 的变化并没有完全扭转它在研究社区中的地位。
2.2 PyTorch:研究友好的动态图
PyTorch 由 Facebook AI Research(FAIR)团队开发,2017 年开源。它最核心的设计是动态计算图(Dynamic Graph),也叫 Define-by-Run。
这意味着,你的代码怎么写的,计算图就怎么构建,你可以随时 print 中间结果、用 if/for 控制流程、像写普通 Python 程序一样写模型。对于研究者来说,这种“所见即所得”的调试体验,体验远好于 TensorFlow 1.x 的静态图模式。
学术界对 PyTorch 的偏爱,本质上是因为它降低了“把想法变成代码”的摩擦。你需要验证一个新的模型结构,不需要考虑计算图的序列化问题,直接写代码就行。这种效率优势,在“周一读论文、周三复现、周五改结构”的研究节奏下,是非常可感知的。
2.3 一句话总结
TensorFlow 更像一个“平台”,适合做大规模的工程系统;PyTorch 更像一个“工具”,适合做研究和快速迭代。2026 年的实际情况是:研究几乎都是 PyTorch,工业部署两者都存在,但 PyTorch 的份额在快速上升。
3. 两个框架的核心差异,用表格说清楚
很多入门教程会回避对比,直接告诉你“学哪个都行”。但我觉得,只有把差异摊开了,你才能根据自身情况做判断。下面这个表格,你可以收藏起来。
| 对比维度 | TensorFlow 2.x | PyTorch 2.x |
|---|---|---|
| 默认执行模式 | 动态图(默认开启 Eager),同时支持静态图导出 | 动态图为主,支持 torch.compile 优化 |
| 编程语言 | Python API 为主,底层 C++,支持 JavaScript 等 | Python API 为主,底层 C++,也有 C++ 接口 |
| 调试体验 | 借助 Keras 回调,相对方便 | 直接用 Python 调试工具,体验更接近普通 Python |
| 模型定义风格 | Keras Sequential/Functional API,或继承 Model | 继承 torch.nn.Module,需要写 forward |
| 数据加载 | tf.data 管道,功能强大但上手曲线陡 | torch.utils.data.DataLoader,直观易用 |
| 分布式训练 | 支持成熟,适合大规模集群 | 支持完善,DDP 使用广泛 |
| 模型部署 | TF Serving、TensorFlow Lite、TensorFlow.js,生态很全 | TorchServe、ONNX 导出、LibTorch,部署路径日渐完善 |
| 学术界使用 | 少数课程和传统项目 | 论文复现、开源模型的绝对主流 |
| 工业界使用 | 存量系统较多,尤其在推荐、广告、搜索领域 | 新项目占比快速提升,大模型相关基本是 PyTorch |
| 适合入门人群 | 工程背景、已有 TF 团队、移动端开发 | 新手默认推荐、研究路线、大模型方向 |
这个表格里,你需要特别关注两行:模型定义风格和数据加载。因为入门期你的大部分代码都在写这两个东西,它们直接影响你的学习体验。
4. 环境搭建与基础配置,2026 版
不管选哪个框架,第一步都是搭建环境。这里有一个非常重要的建议,也是很多人踩坑的地方:
不要直接在你的系统 Python 环境里装 TensorFlow 或 PyTorch。请使用虚拟环境,推荐 Anaconda 或 venv。
4.1 使用 conda 创建虚拟环境
# 创建 Python 3.10 环境,名字可以自定义 conda create -n dl python=3.10 # 激活环境 conda activate dl为什么推荐 Python 3.10?因为 Python 3.12/3.13 虽然更新,但一些深度学习依赖(比如某些 CUDA 工具链、旧版包)的兼容性还不完全稳定。3.10 是当前生态兼容性最好的版本。
4.2 PyTorch 安装
前往 PyTorch 官网,选择对应的系统、包管理器、CUDA 版本,会生成对应的安装命令。以 CUDA 12.x 为例:
# Linux + pip + CUDA 12.1 pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121如果只是 CPU 环境学习,可以安装纯 CPU 版本:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu4.3 TensorFlow 安装
TensorFlow 2.x 的安装相对简单:
pip install tensorflow如果要支持 GPU,需要额外安装 CUDA 和 cuDNN,同时确认版本匹配。TensorFlow 官方文档中已经提供了详细的版本对应表,安装前务必查看。
4.4 验证安装是否成功
# 验证 PyTorch import torch print(torch.__version__) print(torch.cuda.is_available())# 验证 TensorFlow import tensorflow as tf print(tf.__version__) print(tf.config.list_physical_devices('GPU'))这一步是排查问题最关键的起点。如果 print(torch.cuda.is_available()) 返回 False,不要急着换框架,先检查 CUDA 驱动、显卡驱动是否匹配。
这里需要强调一下,版本匹配是深度学习环境搭建最头疼的问题。没有绝对的“哪个版本的 CUDA 配哪个版本的驱动”的万能答案,因为你的显卡型号、驱动版本、Python 版本都会影响最终结果。最稳妥的做法就是:先在 CPU 环境把流程跑通,再折腾 GPU 加速。很多初学者直接上来就配 GPU,结果环境搭了一周还没见过模型长什么样,这是最不划算的投入。
5. 同一任务,两个框架的完整示例
这里我用最经典的 MNIST 手写数字识别(训练一个多层感知机)来演示。这样你能直接看到两个框架在代码层面的真实差异,而不是听我空说“PyTorch 更简洁”。
5.1 数据集说明
MNIST 是深度学习的“Hello World”。它包含 60000 张训练图片和 10000 张测试图片,每张是 28x28 像素的灰度图,内容是 0-9 的手写数字。分类目标是将图片识别为对应的数字。
5.2 PyTorch 实现
# 文件路径:pytorch_mnist.py import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader from torchvision import datasets, transforms # 1. 定义数据预处理:转 Tensor + 标准化 transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,)) ]) # 2. 加载训练集和测试集 train_dataset = datasets.MNIST('./data', train=True, download=True, transform=transform) test_dataset = datasets.MNIST('./data', train=False, download=True, transform=transform) train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True) test_loader = DataLoader(test_dataset, batch_size=64, shuffle=False) # 3. 定义模型:一个简单的三层全连接网络 class MLP(nn.Module): def __init__(self): super(MLP, self).__init__() self.fc1 = nn.Linear(28 * 28, 128) self.fc2 = nn.Linear(128, 64) self.fc3 = nn.Linear(64, 10) self.relu = nn.ReLU() def forward(self, x): x = x.view(-1, 28 * 28) # 将图片展平 x = self.relu(self.fc1(x)) x = self.relu(self.fc2(x)) x = self.fc3(x) return x model = MLP() criterion = nn.CrossEntropyLoss() optimizer = optim.Adam(model.parameters(), lr=0.001) # 4. 训练循环 model.train() for epoch in range(5): total_loss = 0 for batch_idx, (data, target) in enumerate(train_loader): optimizer.zero_grad() output = model(data) loss = criterion(output, target) loss.backward() optimizer.step() total_loss += loss.item() if batch_idx % 100 == 0: print(f'Epoch {epoch+1}, Batch {batch_idx}, Loss: {loss.item():.4f}') print(f'Epoch {epoch+1} 平均 Loss: {total_loss / len(train_loader):.4f}') # 5. 模型评估 model.eval() correct = 0 total = 0 with torch.no_grad(): for data, target in test_loader: output = model(data) pred = output.argmax(dim=1, keepdim=True) correct += pred.eq(target.view_as(pred)).sum().item() total += target.size(0) print(f'测试集准确率: {100.0 * correct / total:.2f}%')关键逻辑说明:
nn.Module是所有 PyTorch 模型的基类。你必须实现forward方法,定义数据如何从输入变成输出。optimizer.zero_grad()每次训练前清空梯度,否则 PyTorch 会默认累积梯度。with torch.no_grad()在评估阶段告诉 PyTorch 不需要计算梯度,这样可以节省内存并加快速度。
5.3 TensorFlow 实现
# 文件路径:tf_mnist.py import tensorflow as tf from tensorflow.keras import layers, models # 1. 加载 MNIST 数据集 mnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() # 2. 数据归一化:将像素值从 [0, 255] 缩放到 [0, 1] x_train, x_test = x_train / 255.0, x_test / 255.0 # 3. 定义模型:Keras Sequential API model = models.Sequential([ layers.Flatten(input_shape=(28, 28)), layers.Dense(128, activation='relu'), layers.Dense(64, activation='relu'), layers.Dense(10, activation='softmax') ]) # 4. 编译模型:指定优化器、损失函数和评估指标 model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # 5. 训练模型 model.fit(x_train, y_train, epochs=5, batch_size=64, validation_data=(x_test, y_test)) # 6. 评估模型 test_loss, test_acc = model.evaluate(x_test, y_test) print(f'测试集准确率: {test_acc:.4f}')关键逻辑说明:
- Keras 的 Sequential API 把模型定义简化到了极致。你只需要告诉它每一层的类型和参数,它帮你串联起来。
compile阶段指定了训练要用的优化器和损失函数。sparse_categorical_crossentropy对应整数标签的分类问题。model.fit是 TensorFlow/Keras 的经典训练入口,一行代码完成整个训练循环。
5.4 代码层面的差异感受
你可以看到,在代码层面,TensorFlow/Keras 的写法确实更“傻瓜”。但 PyTorch 也没有复杂到哪里去,它只是把训练循环显式地写了出来。
这个显式有什么好处?它让你理解训练的本质逻辑。当你手动写完loss.backward()和optimizer.step()之后,你才真正知道梯度更新是什么。如果一开始就用 Keras 的model.fit,你可能训练完 5 轮也不知道模型是怎么更新参数的。
6. 运行结果与效果验证
6.1 预期运行结果
两个代码都能在 CPU 环境跑通。PyTorch 版本每个 epoch 大约 1-2 分钟(取决于机器),TensorFlow 版本速度类似。最终测试集准确率应该都在 97% 以上。
如果遇到准确率很低(比如 10%左右),先检查数据归一化是否正确。MNIST 像素值是 0-255,如果不除以 255,模型很容易不收敛。
6.2 如何验证效果
你可以在 PyTorch 版本中加入可视化的代码,把预测结果画出来:
import matplotlib.pyplot as plt # 取测试集前 5 张图 data, target = next(iter(test_loader)) output = model(data) pred = output.argmax(dim=1, keepdim=True) fig, axes = plt.subplots(1, 5, figsize=(10, 3)) for i in range(5): axes[i].imshow(data[i].squeeze(), cmap='gray') axes[i].set_title(f'真实: {target[i].item()} 预测: {pred[i].item()}') axes[i].axis('off') plt.show()如果图片显示正常、预测标签与真实标签基本一致,说明你的流程已经跑通了。
6.3 如果运行失败,先按下面顺序排查
- 检查报错信息是
ImportError还是运行时错误。ImportError说明安装有问题,运行时错误则大概率是代码或数据问题。 - 确认你在正确的虚拟环境中。运行
which python或where python看路径是否指向你创建的 conda 环境。 - 确认数据集下载路径有写权限。MNIST 会自动下载到
./data目录,如果这个目录不可写,会报下载失败。 - 如果 GPU 相关报错,先切换到 CPU 版本测试。在 PyTorch 中使用
torch.device('cpu'),在 TensorFlow 中使用tf.config.set_visible_devices([], 'GPU')可以临时屏蔽 GPU。
7. 常见问题与排查思路
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| torch.cuda.is_available() 返回 False | CUDA 版本不匹配或显卡驱动过旧 | 检查nvidia-smi驱动信息和 PyTorch 对应 CUDA 版本 | 更新显卡驱动,或安装对应 CUDA 版本的 PyTorch |
| TensorFlow 安装后 import 报错 | Python 版本不兼容 | 查看报错堆栈中的 Python 版本提示 | 改用 Python 3.9-3.11 创建新环境重装 |
| 训练时 GPU 显存不足 | batch_size 过大或模型参数过多 | 观察报错中的显存信息 | 调小 batch_size,或使用梯度累积 |
| MNIST 数据集下载失败 | 网络问题 | 查看下载日志 | 手动下载数据集放到./data目录 |
| 两个框架并存导致冲突 | 全局环境安装了两个框架 | 检查是否在虚拟环境内 | 严格使用 conda 虚拟环境隔离项目依赖 |
| 训练 loss 不下降 | 学习率设置不合适或数据未归一化 | 打印每一步的 loss 观察变化 | 调整学习率,或者检查数据预处理 |
这里面最值得强调的一点是:很多环境问题,根源在于你不用虚拟环境。所有文件夹直接放在系统 Python 里,装了这个又装了那个,版本相互覆盖,最后报错都不知道去哪里查。如果你严格按照 4.1 节创建环境,大部分依赖冲突都可以避免。
8. 2026 年深度学习入门的学习路线建议
框架只是切入点。真正决定你能走多远的,是你接下来的学习路线。这里结合当前的技术趋势,给出一条比较务实的路径。
8.1 入门阶段(1-2 个月):框架 + 基础模型
选定 PyTorch 后,不要一上来就看大模型、Transformer。先用 MNIST 和 CIFAR-10 这两种数据集,把下面的内容吃透:
- 全连接神经网络(MLP)
- 卷积神经网络(CNN)
- 损失函数是什么,为什么分类用交叉熵
- 反向传播的基本直觉
- 训练集、验证集、测试集的作用
这一阶段的目标是:能够不看教程,独立写一个 CNN 模型完成分类任务,并且理解每一行代码在做什么。
8.2 进阶阶段(2-3 个月):掌握现代模型结构
当基础模型已经熟练后,进入现代深度学习的核心:
- Transformer 的结构(Self-Attention、Multi-Head Attention)
- BERT 风格的预训练模型如何做文本分类
- ResNet 等经典 CNN 变体
- 学习率调度、正则化、早停等训练技巧
- 数据增强
这个阶段你会开始接触 Hugging Facetransformers库。这个库基于 PyTorch,提供了几乎所有主流预训练模型的加载和微调接口。你可以用几行代码完成一个 BERT 模型的微调任务,这对理解大模型的工作方式很有帮助。
8.3 方向分化阶段(3-6 个月):选一个垂直方向深耕
2026 年的深度学习不再是“学会基础就能找到工作”的状态。你需要选一个垂直方向:
- NLP 方向:学习大模型微调、RAG(检索增强生成)、Prompt Engineering
- CV 方向:学习目标检测(YOLO 系列)、图像分割、多模态模型
- 推荐系统方向:学习 DeepFM、DIN、多任务学习框架
- 大模型部署方向:学习模型量化、推理加速、分布式推理
选择方向不是只看哪个热门,还要结合你自己的背景。比如你做 Java 后端出身,搞推荐系统可能比搞 NLP 更快上手,因为你对高并发、数据处理、特征工程都有基础。
9. 学习深度学习中常见的几个思维误区
在最后的技术内容之前,我想先纠正几个常见的思维误区。这些误区几乎每一个入门者都踩过,我也是从这些坑里爬出来的。
误区一:先刷完理论再动手写代码。这是最典型的拖延战。深度学习是理论与实践交替推进的学科。你先跑通一个 MNIST 代码,再去看反向传播推导,你会发现原来那些符号是有实际含义的。反过来,如果你从头开始看线性代数、概率论、微积分,想着全部学完再开始,大概率一个月后还在看数学,代码一行没写。
误区二:一定要看懂所有论文再复现。很多初学者论文读了一半就放弃了。至少这是很普遍的情况。更好的做法是先跑通开源代码,再回头读论文。当你带着代码运行的体验去读论文,很多抽象的描述会变得具体起来。2026 年 AI 大模型的论文越来越多,如果每一篇都精读,根本看不过来。正确的策略是:筛选出重要的论文,快速扫读,配套开源代码跑通,再回头精读关键细节。
误区三:把某个框架的特性当成深度学习本身。有人学 PyTorch 学到了torch.utils.data的各种高级用法,但你要知道,这只是工具的一部分。真正核心的深度学习的知识,是模型结构的设计逻辑、损失函数的选择原理、训练过程优化的思维方式。这些知识在你切换到 TensorFlow、PaddlePaddle 或者其他框架时依然有效。
误区四:觉得 GPU 是必须的。2026 年确实很多模型需要 GPU,但入门时 CPU 完全足够。MNIST、CIFAR-10 这类数据集,在 CPU 上也只是慢一点而已,并不会阻碍你学习。不要因为笔记本没有好的显卡就迟迟不开始,这样只会不断拖延。先把代码跑通,把流程理解,再考虑购买云 GPU 或者用 Colab 跑大模型实验。
误区五:只知道用model.fit,从不手写训练循环。这个问题在 TensorFlow/Keras 学习中尤其普遍。Keras 的封装确实方便,但如果你只会调用model.fit,遇到自定义损失函数、多输入多输出模型、复杂的训练逻辑时就会陷入困境。我建议入门时至少手写一次训练循环,把loss.backward()、optimizer.step()的过程走一遍。
10. 两个框架都学,什么时候学,怎么学?
前面说了主线学 PyTorch。但作为一个职业开发者,完全不碰 TensorFlow 也是不明智的。我建议的时间节点是:在你用 PyTorch 完成至少 3 个项目之后,再花两周时间了解 TensorFlow。
为什么是这个时间节点?因为你有了 PyTorch 的训练和部署经验后,再学 TensorFlow,你会发现很多概念是相通的。你不需要从头学,只需要重点看这几个差异点:
- Keras 的 Sequential/Functional API 与 PyTorch
nn.Module的对应关系 tf.data数据管道与 PyTorchDataLoader的对应关系- TensorFlow 的
SavedModel格式与 PyTorch 的torch.jit/ ONNX 导出的区别 - TensorFlow Serving 与 TorchServe 的部署方式差异
到了这个阶段,你已经有能力自己判断哪个框架适合什么场景了。我给你的建议只是帮你选择起点,而不是限制你的终点。
另外,如果你已经有工作团队,并且团队里已经在用 TensorFlow 做推荐系统,那你的学习路径就应该是:先学 TensorFlow/Keras 入门,后续再补充 PyTorch。因为工作中用到的能力优先级,永远高于“学术主流”的优先级。
11. 实际工程中,框架选择要考虑什么?
学习阶段的选择,和实际工程项目中的框架选择,是两个不同的问题。这里补充几个工程视角的考虑项,方便你建立更系统的认知。
11.1 团队现有技术栈
进入公司后,你的框架选择权往往不在自己手上。团队已有的模型、数据管道、部署链路都是多年积累的资产。除非你有充分的理由推翻重来,否则大概率是在现有技术栈里做增量和改良。这也是为什么我强调“两个框架都了解一些”在职业发展上是加分的。
11.2 模型部署链路
如果是做线上推理服务,框架选择会直接影响部署架构。
TensorFlow 生态中,TF Serving是历史最悠久的推理服务解决方案,稳定、高性能,支持版本管理、灰度发布等能力。如果你的模型最终要部署在 C++ 服务中,TensorFlow 的重型生态有优势。
PyTorch 这边的TorchServe也在快速成熟,尤其在大模型场景下,PyTorch 搭配 Hugging Face、vLLM 等工具链,已经成为主流部署方案。ONNX 格式也让两个框架之间的模型转换变得很简单,模型先导出为 ONNX,再用 ONNX Runtime 部署,可以绕开框架差异。
11.3 社区与招聘市场
从招聘 JD 上看,大模型相关岗位几乎清一色要求 PyTorch。传统推荐系统岗位仍然有不少 TensorFlow 要求。如果你不确定自己未来的方向,优先学 PyTorch 的覆盖面更广;如果你明确要做搜索推荐广告方向,TensorFlow 仍然是重要加分项。
12. 最后的总结与执行建议
这篇文章不是要告诉你“TensorFlow 不行了,快学 PyTorch”。事实是,在生产环境里,两个框架都在被大量使用。但时代的主线已经清晰了:PyTorch 是当前深度学习研究和新一代 AI 应用开发的主流入口。
对于 2026 年准备入门深度学习的你,我有一个非常明确的执行建议:
第一步,今天就用 conda 创建好 Python 3.10 环境,安装 PyTorch CPU 版本,跑通上面的 MNIST 代码。不用纠结版本,也别管 GPU,先让代码跑起来。
第二步,花两周时间,把 MNIST 和 CIFAR-10 的分类任务做到 90% 以上准确率,手写至少一次训练循环。这时候你已经有了深度学习的基本手感。
第三步,用 PyTorch 完成一个你感兴趣的方向的小项目。比如用 BERT 做中文文本分类,或者用 YOLO 做目标检测。做完之后你就有能力判断自己要不要继续深入这个方向。
第四步,在有余力的时候,用一周时间了解 TensorFlow/Keras 的基本用法,弄清楚两个框架在工程上的差异。
框架之争对你的职业生涯来说,只是很小的一步。真正重要的是你在学习过程中建立的模型思维、调参能力和工程直觉。这些能力,不会因为你用的框架不同而不同。
希望这篇文章能帮你少走一些弯路。如果你在安装或者运行代码时遇到问题,欢迎在评论区留言,我会尽力帮你排查。也建议收藏本文,方便后续环境搭建和框架选择时快速查阅。
