深度学习框架
主流人工智能开发框架
框架 |
编程语言 |
应用领域 |
特点与优势 |
TensorFlow |
Python, C++ |
深度学习、计算机视觉、NLP |
强大的社区支持、灵活性、高度优化的计算图、跨平台支持、适用于大规模生产环境。 |
PyTorch |
Python |
深度学习、计算机视觉、NLP |
动态计算图、直观易用、强大的GPU加速支持、广泛的研究和社区支持。 |
Keras |
Python |
深度学习、计算机视觉、NLP |
简洁的API、高度封装,适合快速开发和原型设计,现已整合进TensorFlow。 |
Apache MXNet |
Python, C++ |
深度学习、大数据、分布式训练 |
高效的多语言支持,出色的分布式训练能力,支持GPU加速。 |
Caffe |
C++, Python |
计算机视觉、图像处理 |
高效、快速,特别适用于图像分类和语义分割等计算机视觉任务,支持GPU计算。 |
Theano |
Python |
数学运算、深度学习 |
高效的数学运算优化,支持GPU加速,适用于定制化深度学习算法。 |
CNTK |
C++, Python |
深度学习、大规模训练、并行计算 |
强大的分布式训练能力,适用于大规模数据和神经网络训练,优化了计算性能。 |
DL4J |
Java, Scala |
深度学习、分布式计算 |
支持大数据和分布式计算,与Hadoop、Spark兼容,适合Java开发者使用。 |
Scikit-learn |
Python |
传统机器学习(分类、回归、聚类) |
易于使用,丰富的算法支持(如决策树、SVM、KNN等),与NumPy、SciPy等兼容性好。 |
Fastai |
Python |
深度学习、计算机视觉、NLP |
基于PyTorch,简化深度学习的使用,快速原型开发,适合快速实验与部署。 |
Hugging Face Transformers |
Python |
自然语言处理(NLP) |
提供预训练的Transformer模型,支持BERT、GPT等,简化NLP模型的使用和部署。 |
OpenCV |
C++, Python |
计算机视觉、图像处理、视频分析 |
提供丰富的图像、视频处理功能,支持多平台,广泛应用于计算机视觉任务。 |
PyTorch VS TensorFlow
对比项 |
PyTorch |
TensorFlow |
开发者 |
Facebook AI Research (FAIR) |
Google Brain |
发布时间 |
2016 年 |
2015 年 |
计算图 |
动态计算图(Eager Execution) |
静态计算图(TF 1.x)+ 动态计算图(TF 2.0) |
易用性 |
代码简洁,类似 Python 代码风格,学习曲线较低 |
早期 API 复杂,TF 2.0 后简化但仍相对复杂 |
调试 |
直接使用 Python 调试工具,如 pdb |
需要 TensorBoard 或 tf.print |
性能 |
适用于小规模模型,动态图调试方便,训练速度略慢 |
适用于大规模分布式训练,优化更成熟 |
部署 |
支持 TorchServe,适用于小型部署 |
TensorFlow Serving / TensorFlow Lite,工业级部署更完善 |
移动端支持 |
PyTorch Mobile,支持 iOS 和 Android |
TensorFlow Lite,优化更成熟 |
社区支持 |
研究界更流行,论文实现多使用 PyTorch |
工业界更流行,企业级支持更丰富 |
分布式训练 |
torch.distributed ,易用性较好 |
TensorFlow 提供更强大的分布式训练支持 |
生产环境 |
逐步完善,TorchScript 可优化推理 |
更成熟,适用于企业级生产环境 |
流行度 |
研究领域占优 |
企业应用更广泛 |
国产深度学习框架
框架名称 |
开发单位 |
编程语言 |
应用领域 |
特点与优势 |
PaddlePaddle |
百度 |
Python, C++ |
计算机视觉、NLP、推荐系统 |
产业级应用广泛,支持大规模分布式训练,自研芯片兼容性强 |
MindSpore |
华为 |
Python, C++ |
计算机视觉、NLP、AI for Science |
适配昇腾芯片,支持端、边、云协同,自动并行优化 |
OneFlow |
OneFlow.ai |
Python, C++ |
计算机视觉、大规模分布式训练 |
高效计算图优化,支持 GPU/TPU 训练,分布式性能强 |
MegEngine |
旷视(Megvii) |
Python, C++ |
计算机视觉、AI 工业应用 |
轻量级、高效计算优化,适用于边缘端部署 |
Tengine |
OPEN AI LAB |
C, C++ |
移动端、嵌入式 AI |
低功耗 AI 计算,适用于 IoT 和移动设备 |
MNN |
阿里巴巴 |
C++, Python |
端侧 AI(移动端、IoT) |
轻量级,适配多种端侧设备,低功耗 |
TensorLayer |
清华大学 & 智源研究院 |
Python |
学术研究、工业应用 |
高层封装 TensorFlow,易用性强 |
PyTorch 需要的知识储备
类别 |
具体知识点 |
数学 |
线性代数、概率论、微积分 |
Python |
Numpy、Matplotlib、Pandas |
PyTorch |
Tensor、Autograd、优化器 |
深度学习 |
神经网络、CNN、RNN、Transformer |
数据处理 |
归一化、特征工程、数据增强 |
实战项目 |
图像分类、NLP、GAN、强化学习 |
PyTorch Android
PyTorch Android Demo
public class MainActivity extends AppCompatActivity implements Runnable {
private Module mModule = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
// 模型加载 默认CPU
mModule = LiteModuleLoader.load(MainActivity.assetFilePath(getApplicationContext(), "yolov5s.torchscript.ptl"));
BufferedReader br = new BufferedReader(new InputStreamReader(getAssets().open("classes.txt")));
String line;
List<String> classes = new ArrayList<>();
while ((line = br.readLine()) != null) {
classes.add(line);
}
PrePostProcessor.mClasses = new String[classes.size()];
classes.toArray(PrePostProcessor.mClasses);
} catch (IOException e) {
Log.e("Object Detection", "Error reading assets", e);
finish();
}
}
@Override
public void run() {
Bitmap resizedBitmap = Bitmap.createScaledBitmap(mBitmap, PrePostProcessor.mInputWidth, PrePostProcessor.mInputHeight, true);
final Tensor inputTensor = TensorImageUtils.bitmapToFloat32Tensor(resizedBitmap, PrePostProcessor.NO_MEAN_RGB, PrePostProcessor.NO_STD_RGB);
IValue[] outputTuple = mModule.forward(IValue.from(inputTensor)).toTuple();
final Tensor outputTensor = outputTuple[0].toTensor();
final float[] outputs = outputTensor.getDataAsFloatArray();
final ArrayList<Result> results = PrePostProcessor.outputsToNMSPredictions(outputs, mImgScaleX, mImgScaleY, mIvScaleX, mIvScaleY, mStartX, mStartY);
runOnUiThread(() -> {
mButtonDetect.setEnabled(true);
mButtonDetect.setText(getString(R.string.detect));
mProgressBar.setVisibility(ProgressBar.INVISIBLE);
mResultView.setResults(results);
mResultView.invalidate();
mResultView.setVisibility(View.VISIBLE);
});
}
}
PyTorch 安装

选择CPU
sudo apt install python3-pip
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
RK3588 面单识别开发流程
步骤 |
说明 |
1. 数据准备 |
收集并标注快递面单数据集,准备好训练用的图像和标签。 |
2. 模型设计 |
使用 PyTorch 设计并实现面单识别的深度学习模型。常见的做法是使用卷积神经网络(CNN)。 |
3. 模型训练 |
在 Ubuntu 上使用 PyTorch 进行训练。根据需要使用 GPU 加速。 |
4. 模型优化 |
对模型进行优化,如剪枝、量化等,使其适应在安卓设备上运行的要求。 |
5. 导出模型 |
使用 PyTorch 的 torchscript 或 ONNX 导出训练好的模型,以便能够在安卓设备上加载。 |
6. 安卓环境配置 |
配置安卓设备的开发环境,确保安卓设备上有支持 PyTorch 或其他深度学习库(如 TensorFlow Lite)的运行时。 |
7. 安卓端应用开发 |
在安卓设备上开发应用,使用相机捕捉面单图像,调用深度学习模型进行推理。可以使用 PyTorch Android API 或 TensorFlow Lite SDK。 |
8. 模型部署与测试 |
将导出的模型加载到安卓应用中,进行推理测试,确保模型准确识别快递面单。 |
9. 性能优化 |
在安卓设备上进行性能调优,减少推理延迟并优化内存使用。 |
10. 部署与发布 |
完成所有功能开发和测试后,将应用发布到安卓设备上,或者上传到 Google Play 等平台。 |
yolo 学习流程
📌 第 1 步:准备开发环境(PC)
│
├── 安装 PyTorch、Ultralytics YOLO(推荐 YOLOv8)
│ └─ pip install ultralytics
│
└── 准备数据集(图片 + YOLO 标签)
└─ 目录结构:images/train、labels/train、data.yaml
📌 第 2 步:训练 YOLO 模型(在 PC 上)
│
├── 使用命令训练:
│ └─ yolo detect train model=yolov8n.pt data=data.yaml
│
└── 得到结果文件:runs/train/exp/weights/best.pt
📌 第 3 步:导出为 ONNX 格式
│
└── 使用命令:
└─ yolo export model=best.pt format=onnx
→ 输出:best.onnx
📌 第 4 步:安装 RKNN Toolkit Lite2(PC)
│
└── pip install rknn-toolkit-lite2
→ 用于转换 ONNX 为 RKNN 模型
📌 第 5 步:转换模型(ONNX → RKNN)
│
└── Python 脚本:
└─ load_onnx → build → export_rknn("best.rknn")
📌 第 6 步:部署 RKNN 模型到 RK3588
│
├── 拷贝模型文件(best.rknn)到开发板
│
└── 安装推理运行库:
└─ rknn_lite_runtime(Python 或 C)
📌 第 7 步:编写推理代码运行模型(RK3588)
│
├── 初始化模型:load_rknn()
├── 输入预处理:图像 → tensor
├── 推理执行:inference(inputs)
└── 后处理:解析输出框,显示检测结果
📌 第 8 步:模型优化(可选)
│
├── 量化(量化模型体积更小)
├── 使用 YOLOv8n → YOLOv8s → v8m 等对比精度
└── 集成摄像头 + 触摸屏实时运行
AI VS 硬件
AI 更难学,周期更长,但未来机会更广;硬件更接近工程,入门可控但发展天花板较低。
维度 |
转向嵌入式软件 |
转向硬件设计 |
转向 AI |
入门难度 |
⭐⭐(有 C/驱动基础可衔接) |
⭐⭐⭐中高(需要电路基础,动手要求高) |
⭐⭐⭐⭐(数学/算法/工具复杂) |
学习周期 |
短(3~6 个月可上手) |
中长(6~12 个月扎实掌握设计) |
长(6~18 个月才有成果) |
依赖背景 |
嵌入式/电路/通信基础 |
电路原理、模拟数字电路、信号完整性、电磁兼容、材料物理 |
线性代数/概率论/深度学习/PyTorch |
涉及范围 |
驱动调试、电路验证、板级支持等 |
从物理层面到PCB工艺 |
数学模型 + 编程实现 + 数据科学 |
学习难点 |
逻辑性强,代码调试复杂 |
跨学科、多维度、实验复杂 |
理论抽象,数学量大,需理解黑盒模型 |
项目机会 |
驱动调试、电路验证、板级支持等 |
硬件原理图设计、PCB制作、硬件调试 |
图像识别、NLP、推荐、边缘 AI、AIGC 等 |
就业竞争 |
中等偏低,岗位稳定 |
稳定,行业门槛高 |
激烈,但“能干的人太少” |
回报空间 |
中~高(偏工程) |
中~高,资深设计师收入可观 |
高~极高(偏产品/算法) |
向上空间 |
系统架构师、硬件经理 |
硬件系统架构师、硬件设计负责人 |
算法科学家、AI 产品经理/CTO、技术创业 |