Deep Learning Toolbox

创建、分析和训练深度学习网络

 

Deep Learning Toolbox™(以前的 Neural Network Toolbox™)提供了一个利用算法、预训练模型和应用程序来设计和实现深度神经网络的框架。您可以使用卷积神经网络(ConvNet、CNN)和长短期记忆 (LSTM) 网络,对图像、时间序列和文本数据执行分类和回归。您可以使用自定义的训练循环、共享权重和自动微分构建高级网络架构,例如生成式对抗网络 (GAN) 和孪生网络。借助应用程序和绘图,实现可视化激活、编辑和分析网络架构以及监控训练进度。

可通过开放神经网络交换 (ONNX) 格式与 TensorFlow™ 和 PyTorch 进行模型互换,也可以从 TensorFlow-Keras 和 Caffe 导入模型。该工具箱利用 DarkNet-53、ResNet-50、NASNet、SqueezeNet 和许多其他预训练模型支持迁移学习。

您可以利用 Parallel Computing Toolbox™ 加快模型在单 GPU 或多 GPU 工作站上的训练速度,或者利用 MATLAB Parallel Server™ 将运算扩展到集群和云,包括 NVIDIA® GPU Cloud 和 Amazon EC2® GPU 实例。

开始:

网络和架构

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

卷积神经网络

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

长短期记忆网络

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

使用 LSTM。

网络架构

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

使用不同网络架构。

网络设计和分析

使用交互式应用程序创建、编辑、可视化和分析深度学习网络。 

设计深度学习网络

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

分析深度学习网络

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

分析深度学习网络架构。

Manage Deep Learning Experiments

Manage multiple deep learning experiments with the Experiment Manager app. Keep track of training parameters, analyze results, and compare code from different experiments. Use visualization tools such as training plots and confusion matrices, sort and filter experiment results, and define custom metrics to evaluate trained models.

Design and run experiments to train and compare deep learning networks.

迁移学习和预训练模型

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

迁移学习

访问预训练的网络并以此为起点学习新任务,只需使用较少的训练图像即可将已学习的特征快速迁移到新任务。

预训练模型

使用一行代码访问最新研究中的预训练网络。导入预训练模型,包括 Inception-v3、SqueezeNet、NASNet 和 GoogLeNet。

分析深度神经网络模型。

可视化和调试

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

训练进度

通过绘制多种指标,查看每次迭代的训练进度。对照训练指标绘制验证指标,以直观地检查网络是否过拟合。

监控您的模型的训练进度。

网络激活

提取与一个层对应的激活,可视化学习的特征,使用激活训练机器学习分类器。使用 Grad-CAM 方法理解深度学习网络做出分类决策的理由。

可视化激活。

框架互操作性

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

ONNX 转换器

在 MATLAB® 内导入和导出 ONNX 模型,实现与其他深度学习框架的互操作性。利用 ONNX 在一个框架中训练模型,然后转移到另一个框架进行推断。使用 GPU Coder™ 为被导入模型生成优化的 CUDA 代码,使用 MATLAB Coder™ 生成 C/C++ 代码。

与深度学习框架互操作。

TensorFlow-Keras 导入器

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

Caffe 导入器

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

从 Caffe Model Zoo 向 MATLAB 中导入模型。

训练加速

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

GPU 加速

利用高性能 NVIDIA GPU 加快深度学习训练和推断的速度。在单个工作站 GPU 上执行训练,或者借助 DGX 系统扩展到数据中心或云端的多个 GPU。您可以将 MATLAB 与 Parallel Computing Toolbox 以及大多数支持 CUDA® 的 NVIDIA GPU(Compute Capability 3.0 或更高版本)结合使用。

使用 GPU 进行加速。

云加速

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

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

分布式计算

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

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

代码生成和部署

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

代码生成

使用 GPU Coder 从 MATLAB 代码生成优化的 CUDA 代码,用于深度学习、嵌入式视觉和自主系统。使用 MATLAB Coder 生成 C 和 C++ 代码,以将深度学习网络部署到 Intel® Xeon® 和 ARM® Cortex®-A 处理器。

部署独立应用程序

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

与 MATLAB Compiler 共享独立 MATLAB 程序。

浅层神经网络

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

有监督网络

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

浅层神经网络。

无监督网络

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

自组织映射。

堆叠式自动编码器

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

堆叠式自动编码器。

最新特性

Experiment Manager 应用程序

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

Deep Network Designer 应用程序

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

自定义训练循环

训练具有多输入、多输出或 3-D CNN 层的网络

深度学习示例

使用注意力机制训练图像字幕生成网络,使用数据标签和属性训练条件生成式对抗网络

预训练网络

使用 DarkNet-19 和 DarkNet-53 执行迁移学习

支持 ONNX

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

更灵活地开展训练

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

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

MATLAB 实现深度学习

设计、构建和可视化深度学习网络

有疑问吗?

联系 Deep Learning Toolbox 技术专家 Shounak Mitra