Deep Learning Toolbox

设计、训练和分析深度学习网络

Deep Learning Toolbox™ 包含一系列算法、预训练模型和应用程序,为您设计和实现深度神经网络提供框架。您可以使用卷积神经网络 (ConvNet、CNN) 和长短期记忆 (LSTM) 网络,对图像、时间序列和文本数据执行分类和回归。您可以使用自动微分、自定义训练循环和共享权重构建网络架构,例如生成式对抗网络 (GAN) 和孪生网络。借助 Deep Network Designer 应用程序,您能够以图形方式设计、分析和训练网络。Experiment Manager 应用程序可帮助您管理多个深度学习实验、跟踪训练参数、分析结果,并比较来自不同实验的代码。您可以将层激活区域可视化,并以图形方式监控训练进度。

您可以通过 ONNX 格式实现与 TensorFlow™ 及 PyTorch 间的模型交换,也可以从 TensorFlow-Keras 和 Caffe 导入模型。该工具箱支持基于 DarkNet-53、ResNet-50、NASNet、SqueezeNet 及其他多种预训练模型进行迁移学习。

您可以在单 GPU 或多 GPU 工作站上更快地训练模型(需要 Parallel Computing Toolbox™),或者将运算扩展到集群和云,例如 NVIDIA® GPU Cloud 和 Amazon EC2® GPU 实例(需要 MATLAB Parallel Server™)。

快速入门:

网络和架构

训练深度学习网络以执行分类、回归,以及图像、时间序列和文本数据的特征学习。

卷积神经网络

学习图像中的模式,以便识别物体、人脸和场景。构造和训练卷积神经网络 (CNN) 执行特征提取和图像识别。

长短期记忆网络

学习序列数据(包括信号、音频、文本和其他时序数据)中的长期相关性。构造和训练长短期记忆 (LSTM) 网络以执行分类和回归。

使用 LSTM。

网络架构

使用包括有向无环图 (DAG) 和循环架构在内的各种网络结构来构建您的深度学习网络。使用自定义训练循环、共享权重和自动微分构建高级网络架构,例如生成式对抗网络 (GAN) 和孪生网络。

使用不同网络架构。

网络设计和分析

使用交互式应用程序构建、可视化、实验和分析深度学习网络。

设计深度学习网络

使用 Deep Network Designer 应用程序从头开始创建和训练深度网络。导入预训练模型、可视化网络结构、编辑各层、调整参数并进行训练。

分析深度学习网络

分析您的网络架构,在训练前检测并调试错误、警告和层兼容性问题。可视化网络拓扑,并查看可学习参数和激活区域等详细信息。

分析深度学习网络架构。

管理深度学习实验

使用 Experiment Manager 应用程序管理多个深度学习实验。跟踪训练参数、分析结果,并比较来自不同实验的代码。使用训练图和混淆矩阵等可视化工具,对实验结果进行分类和筛选,并定义自定义指标来评估经过训练的模型。

设计并运行实验,以对深度学习网络进行训练和比较。

迁移学习和预训练模型

在 MATLAB 中导入预训练模型以进行推断。

迁移学习

访问预训练的网络并以此为起点学习新任务。执行迁移学习,以使用网络中学习到的特征完成特定任务。

预训练模型

只需一行代码,即可访问时下最新的预训练网络。导入预训练模型,包括 DarkNet-53、ResNet-50、SqueezeNet、NASNet 和 Inception-v3。

分析预训练模型。

可视化和调试

在深度学习网络中,可视化训练进度和所学习特征的激活区域。

训练进度

对多种指标进行绘图,以查看每次迭代的训练进度。将训练指标与验证指标对照绘制,查看网络是否过拟合。

监控模型的训练进度。

网络激活区域

提取某一层对应的激活区域,可视化学习到的特征,并使用这些激活区域来训练机器学习分类器。使用 Grad-CAM 方法理解深度学习网络做出分类决策的依据。

可视化激活区域。

框架互操作性

与 MATLAB 深度学习框架互操作。

ONNX 转换器

在 MATLAB® 中导入和导出 ONNX 模型,实现与其他深度学习框架的互操作性。借助 ONNX,您可以在一个框架中训练模型,然后迁移到另一个框架来进行推断。导入模型后,您可以使用 GPU Coder™ 生成优化的 NVIDIA® CUDA® 代码,也可以使用 MATLAB Coder™ 生成 C++ 代码。

与深度学习框架互操作。

TensorFlow-Keras 导入器

将模型从 TensorFlow-Keras 导入 MATLAB 以进行推断和迁移学习。导入模型后,您可以使用 GPU Coder 生成优化的 CUDA 代码,也可以使用 MATLAB Coder 生成 C++ 代码。

Caffe 导入器

将模型从 Caffe Model Zoo 导入 MATLAB 以进行推断和迁移学习。

将模型从 Caffe Model Zoo 导入 MATLAB。

训练加速

使用 GPU、云和分布式计算加快深度学习训练。

GPU 加速

利用高性能 NVIDIA GPU 加快深度学习训练和推断。您可以在单GPU 工作站上执行训练,也可以借助 DGX 系统扩展到数据中心或云端的多个 GPU。您可以结合使用 MATLAB、Parallel Computing Toolbox 以及大多数支持 CUDA、计算能力为 3.0 或更高的 NVIDIA GPU。

使用 GPU 进行加速。

云加速

使用云实例缩短深度学习训练时间。使用高性能 GPU 实例获得最佳结果。

使用 Parallel Computing Toolbox 和 MATLAB Parallel Server 在云端加速训练。

分布式计算

使用 MATLAB Parallel Server 在多台服务器上的多个处理器间运行网络的深度学习训练。

以并行方式在云端扩展深度学习。

代码生成和部署

将训练好的网络部署到嵌入式系统或集成到生产环境。

代码生成

使用 GPU Coder 从 MATLAB 代码生成优化的 CUDA 代码,用于深度学习、嵌入式视觉和自主系统。使用 MATLAB Coder 生成 C++ 代码,以将深度学习网络部署到 Intel® Xeon® 和 ARM® Cortex®-A 处理器。自动进行交叉编译并将生成的代码部署到 NVIDIA Jetson™ 和 DRIVE™ 平台以及 Raspberry Pi™ 板上。

部署独立应用程序

使用 MATLAB Compiler™MATLAB Compiler SDK™,将基于深度学习模型的 MATLAB 程序中训练好的网络部署为 C++ 共享库、Microsoft® .NET 程序集、Java® 类或 Python® 包。

使用 MATLAB Compiler 共享独立 MATLAB 程序。

深度学习量化

使用 Model Quantization Library 支持包,将您的深度学习网络量化为 INT8,并分析选定层的权重和偏差因量化而发生的准确性取舍。

浅层神经网络

将神经网络用于各种有监督和无监督浅层神经网络架构。

有监督网络

训练有监督浅层神经网络,对动态系统进行建模和控制,对噪声数据分类,预测未来事件。 

浅层神经网络。

无监督网络

让浅层网络不断基于新的输入自我调整,从而发现数据内的关系并自动定义分类方案。使用自组织、无监督的网络以及竞争层和自组织映射。

自组织映射。

堆叠自编码器

通过使用自编码器从数据集提取低维特征,执行无监督特征变换。通过训练和堆叠多个编码器,您还可以使用堆叠自编码器进行有监督学习。

堆叠编码器。

最新特性

Experiment Manager 应用程序

管理多个深度学习实验,跟踪训练参数,分析并比较结果和代码

Deep Network Designer 应用程序

交互式训练网络以进行图像分类,生成用于训练的 MATLAB 代码,访问预训练模型

自定义训练循环

训练具有多输入、多输出或三维 CNN 层的网络

深度学习示例

使用注意力机制训练图片描述生成网络,使用数据标签和属性训练条件生成式对抗网络 (GAN)

预训练网络

基于 DarkNet-19 和 DarkNet-53 执行迁移学习

ONNX 支持

使用 ONNX 模型转换器导入具有多输入或多输出的网络

训练灵活性

为自定义训练循环指定自定义层反向函数

关于这些特性和相应函数的详细信息,请参阅发行说明

MATLAB 实现深度学习

无论是设计算法、准备和标注数据,还是生成代码并部署到嵌入式系统,只需短短几行 MATLAB 代码,就可以将深度学习方法应用到您的工作中。