深度学习

预训练的深度学习模型

利用深度学习研究社区开发的成熟模型架构。主流模型提供了稳健的架构,免去了从零开始设计模型的繁琐。

选择模型的窍门

可供选择的预训练模型有很多,每个模型各有利弊。

  • 大小:模型需要多少内存 
    模型最终部署的位置将决定网络大小的重要性。
    如果选择部署到低内存系统,请选择专门针对此类任务设计的模型。 
    查看适合边缘部署的模型
  • 准确度:重新训练前模型的性能如何
    通常情况下,如果一个模型在 ImageNet 数据集上性能良好,就说明该模型已经学习到了有用的特征,在类似的新任务中也会有良好的性能。 
    查看准确度较高的模型
  • 预测速度:模型基于新图像进行预测速度有多快
    预测速度会因硬件和批量大小等诸多因素而异,但同时也会受所选模型的架构以及模型大小的影响。
    使用适合起步的简单模型比较预测速度。

阅读下文,了解各个模型间的利弊权衡。

要将模型导入 MATLAB,请使用以下语法结构:

 >> net = networkname 

 >> net = alexnet >> net = resnet50 

如果还没有下载模型,您可以直接通过 MATLAB 提供的链接下载模型。

适合起步的简单模型

这些模型支持您快速迭代并尝试各种设置,如数据预处理步骤和训练选项。一旦您发现某套设置效果不错,就可以尝试换一个更准确的网络,看看它能否改善结果。

浏览示例:

准确度较高的模型

探索能有效执行基于图像的工作流程的模型,如图像分类、目标检测和语义分割。

对于目标检测工作流程:

DarkNet-19、DarkNet-53 和 ResNet-50 经常用作目标检测问题和 YOLO 工作流程的基础。查看使用 Yolov2Yolov3 进行目标检测的示例。

对于语义分割工作流程:

要训练语义分割网络,预定义的网络架构会是一个便捷的起点。以下是语义分割问题中常用的层架构。

  • segnetLayers
  • unetLayers
  • unet3dLayers
  • DeepLab v3+

查看此处,了解如何使用 Deeplab v3+ 创建语义分割网络。

适合边缘部署的模型

在 Raspberry Pi 或 FPGA 等低计算、低功耗设备上进行部署时,模型的内存占用必须要小。

查看相关主题:

浏览示例:

来自其他框架的模型

需要来自其他框架的模型?使用 ONNX、TensorFlow-Keras 和 Caffe 导入器将任意网络导入 MATLAB。

浏览示例:

不支持的层?

了解如何导入预训练的 Keras 层,并用自定义层替换不支持的层。

MATLAB 中可用模型的完整列表

新的深度学习模型和示例