主要内容

深度学习MATLAB

什么是深度学习?

深度学习是机器学习的一个分支,它教会计算机做人类与生俱来的事情:从经验中学习。深度学习使用神经网络直接从数据中学习特征的有用表示。神经网络结合了多个非线性处理层,使用简单的元素并行操作,并受到生物神经系统的启发。深度学习模型可以在对象分类中达到最先进的精度,有时甚至超过人类的水平。

深度学习工具箱™提供简单的MATLAB®用于创建和互连深层神经网络层的命令。示例和预训练的网络使得使用MATLAB进行深度学习很容易,即使不了解高级计算机视觉算法或神经网络。

有关实用深度学习方法的免费实践介绍,请参见深度学习入口.要快速入门深度学习,请看在10行MATLAB代码中尝试深度学习

使用迁移学习更快地开始深度学习

迁移学习是深度学习应用中常用的一种方法。你可以使用预先训练好的网络,并将其作为学习新任务的起点。使用迁移学习对网络进行微调要比从头开始训练快得多,也容易得多。您可以使用较少的训练图像快速使网络学习新的任务。迁移学习的优势在于,预先训练的网络已经学习了一组丰富的特征,可以应用于广泛的其他类似任务。有关交互式示例,请参见基于深度网络设计器的迁移学习.有关程序示例,请参见训练深度学习网络对新图像进行分类

要选择是使用预训练的网络还是创建新的深度网络,请考虑本表中的场景。

使用预训练的网络进行迁移学习 创建一个新的深度网络
训练数据 成百上千的标记数据(小) 成千上万的标记数据
计算 计算量适中(GPU可选) 计算密集型(需要GPU来提高速度)
培训时间 几秒到几分钟 真正的问题需要几天甚至几周
模型的准确性 很好,这取决于预先训练的模型 高,但可以过拟合到小数据集

要探索预训练网络的选择,请使用深度网络设计器

深度学习工作流程

要了解有关深度学习应用领域的更多信息,请参见深度学习应用

示例工作流 了解更多

图像分类,回归和处理

图像数据示例

将深度学习应用于图像数据任务。

例如,使用深度学习进行图像分类和回归。

开始迁移学习

预训练的深度神经网络

创建简单的深度学习网络分类

训练卷积神经网络回归

用于深度学习的图像预处理

序列和时间序列

时间序列数据示例

将深度学习应用于序列和时间序列任务。

例如,使用深度学习进行序列分类和时间序列预测。

使用深度学习的序列分类

利用深度学习进行时间序列预测

计算机视觉

语义分割数据示例

将深度学习应用于计算机视觉应用。

例如,使用深度学习进行语义分割和对象检测。

开始使用深度学习进行语义分割(计算机视觉工具箱)

识别,目标检测和语义分割(计算机视觉工具箱)

音频处理

音频数据示例

将深度学习应用于音频和语音处理应用。

例如,将深度学习用于说话人识别、语音命令识别和声场景识别。

使用深度学习的音频处理

音频应用的深度学习(音频工具箱)

自动驾驶

自动驾驶数据示例

将深度学习应用于自动驾驶应用。

例如,将深度学习用于车辆检测和语义分割。

使用深度学习的自动驾驶

训练一个深度学习车辆检测器

信号处理

信号处理数据实例

将深度学习应用于信号处理应用。

例如,使用深度学习进行波形分割、信号分类和语音信号去噪。

使用深度学习的信号处理

基于小波分析和深度学习的时间序列分类

无线通信

无线通信数据示例

将深度学习应用于无线通信系统。

例如,将深度学习用于定位、频谱感知、自动编码器设计和数字预失真(DPD)。

使用深度学习的无线通信

基于深度学习的频谱感知识别5G和LTE信号

基于802.11az指纹识别和深度学习的三维室内定位(WLAN工具箱)

强化学习

强化学习数据示例

通过与未知动态环境的交互来训练深度神经网络代理。

例如,使用强化学习来训练策略,以实现资源分配、机器人和自主系统等复杂应用程序的控制器和决策算法。

使用深度神经网络的强化学习

计算金融

计算金融数据示例

将深度学习应用于财务工作流程。

例如,将深度学习用于包括工具定价、交易和风险管理在内的应用。

利用深度学习的计算金融

比较深度学习网络的信用违约预测

激光雷达处理

激光雷达处理数据的实例

应用深度学习算法处理激光雷达点云数据。

例如,利用深度学习进行语义分割,对三维组织的激光雷达点云数据进行目标检测。

使用深度学习的激光雷达处理

基于pointnet++深度学习的航空激光雷达语义分割

利用PointPillars深度学习的激光雷达三维目标检测

文本分析

文本分析数据示例

将深度学习算法应用于文本分析应用程序。

例如,使用深度学习进行文本分类、语言翻译和文本生成。

使用深度学习的文本分析

使用深度学习分类文本数据

预见性维护

预测性维护数据示例

将深度学习应用于预测性维护应用。

例如,使用深度学习进行故障检测和剩余使用寿命估计。

使用深度学习进行预测性维护

基于深度学习的化工过程故障检测

深度学习应用

处理数据,可视化和训练网络,跟踪实验,并使用应用程序交互量化网络。

你可以在训练之前使用应用程序来处理你的数据,标记地面真相数据。有关选择标签应用程序的更多信息,请参见选择一个应用程序来标记地面真相数据

的名字 描述 了解更多
深度网络设计器

深度网络设计器

构建、可视化、编辑和训练深度学习网络。

基于深度网络设计器的迁移学习

利用深度网络设计器进行时间序列预测的训练网络

实验管理器

实验管理器

创建深度学习实验,在多个初始条件下训练网络,并比较结果。

创建一个分类的深度学习实验

创建一个回归的深度学习实验

深度网络量化器

深度网络量化器

通过将卷积层的权重、偏差和激活量化为8位缩放的整数数据类型,降低深度神经网络的内存需求。

深度神经网络的量化

强化学习设计师(强化学习工具箱)

强化学习设计师

设计、训练和模拟强化学习代理。 使用强化学习设计器设计和训练智能体(强化学习工具箱)
图片标志(计算机视觉工具箱)

图片标志

在图像集合中标记地面真实数据。

开始使用图像标签器(计算机视觉工具箱)

贴标签机视频(计算机视觉工具箱)

贴标签机视频

在视频、图像序列或自定义数据源阅读器中标记真实数据。

开始与视频标签(计算机视觉工具箱)

地面真相标签(自动驾驶工具箱)

地面真相标签

在多个视频、图像序列或激光雷达点云中标记地面真相数据。

从事实标签开始(自动驾驶工具箱)

激光雷达贴标签机(激光雷达工具箱)

激光雷达贴标签机

在点云或点云序列中标记对象。该应用程序从PLY, PCAP, LAS, LAZ, ROS和PCD文件中读取点云数据。

开始与激光雷达标签(激光雷达工具箱)

信号贴标签机(信号处理工具箱)

信号贴标签机

标记信号用于分析或在机器学习和深度学习应用中使用。

使用信号标签应用程序(信号处理工具箱)

使用从预训练网络中提取的特征的训练分类器

特征提取允许您使用预训练网络的强大功能,而无需在训练中投入时间和精力。特征提取可能是使用深度学习的最快方式。从预训练的网络中提取学习到的特征,并使用这些特征来训练分类器,例如,支持向量机(SVM -需要统计和机器学习工具箱™)。金宝app例如,如果SVM训练使用alexnet可以在你的训练和验证集上达到>90%的准确率,那么使用迁移学习进行微调可能不值得为了获得一些额外的准确度而努力。如果你在一个小数据集上执行微调,那么你也有过拟合的风险。如果SVM不能为您的应用程序提供足够好的精度,那么进行微调以寻求更高的精度是值得的。

有关示例,请参见利用预训练网络提取图像特征

cpu、gpu、并行和云上的大数据深度学习

训练深度网络是计算密集型的,可能需要数小时的计算时间;然而,神经网络本质上是并行算法。您可以使用并行计算工具箱™,通过使用高性能gpu和计算机集群并行运行来利用这种并行性。要了解有关并行、云中或使用GPU的深度学习的更多信息,请参见并行、gpu和云中扩展深度学习

使用并行计算工具箱加速云中的培训。

MATLAB中的数据存储®是一种处理和表示数据集合的方便方法,这些数据集合太大,一次无法装入内存。要了解关于大数据集深度学习的更多信息,请参见大数据深度学习

使用Simulink进行深度学习金宝app

在Simulink中实现深度学习功能金宝app®通过使用深度学习工具箱™中包含的深度神经网络块库中的块,或使用计算机视觉工具箱™中包含的分析与增强块库中的深度学习对象检测器块来建模。

有关更多信息,请参见Simulink深度学习金宝app

描述

图像分类器

使用经过训练的深度学习神经网络对数据进行分类

预测

使用训练过的深度学习神经网络预测反应

有状态的分类

使用训练好的深度学习循环神经网络对数据进行分类

有状态的预测

使用训练过的循环神经网络预测反应

深度学习对象检测器(计算机视觉工具箱)

使用训练有素的深度学习对象检测器检测对象

深度学习可解释性

深度学习网络通常被描述为“黑盒”,因为网络做出某种决定的原因并不总是显而易见的。您可以使用可解释性技术将网络行为转换为人们可以解释的输出。这个可解释的输出可以回答关于网络预测的问题。

深度学习工具箱提供了几种深度学习可视化方法来帮助您调查和理解网络行为。例如,gradCAMocclusionSensitivity,imageLIME.有关更多信息,请参见深度学习可视化方法

深度学习可解释性和可视化方法应用于狗的图像。

深度学习定制

您可以以各种方式训练和定制深度学习模型。例如,您可以使用内置层或定义自定义层构建网络。然后,您可以使用内置的训练功能训练您的网络trainNetwork或者将深度学习模型定义为函数,并使用自定义训练循环。为了帮助决定使用哪种方法,请参考下表。

方法 用例 了解更多
内置培训和层次 适用于大多数深度学习任务。

自定义图层 如果“深度学习工具箱”不提供任务所需的层,则可以创建自定义层。
自定义培训循环 如果需要额外的自定义,可以使用自定义训练循环构建和训练网络。

有关更多信息,请参见用MATLAB训练深度学习模型

深度学习导入和导出

您可以从TensorFlow™2,TensorFlow- keras, PyTorch导入网络和层图®,以及ONNX™(开放神经网络交换)模型格式。您还可以将深度学习工具箱网络和层图导出为TensorFlow 2和ONNX模型格式。

导入功能

外部深度学习平台和模型格式 以网络形式导入模型 导入模型为层图
TensorFlow网络SavedModel格式 importTensorFlowNetwork importTensorFlowLayers
TensorFlow-Keras网络HDF5或JSON格式 importKerasNetwork importKerasLayers
跟踪PyTorch模型.pt文件 importNetworkFromPyTorch 不适用
ONNX模型格式的网络 importONNXNetwork importONNXLayers

importTensorFlowNetwork而且importTensorFlowLayers函数推荐使用importKerasNetwork而且importKerasLayers功能。有关更多信息,请参见导入TensorFlow模型的推荐函数

importTensorFlowNetworkimportTensorFlowLayersimportNetworkFromPyTorchimportONNXNetwork,importONNXLayers当你导入带有TensorFlow层、PyTorch层或ONNX操作符的模型时,函数会自动生成自定义层,而函数无法将这些层转换为内置的MATLAB层。这些函数将自动生成的自定义层保存到当前文件夹中的包中。有关更多信息,请参见自动生成的自定义图层

导出功能

导出网络或层图 外部深度学习平台和模型格式
exportNetworkToTensorFlow Python中的TensorFlow 2模型®
exportONNXNetwork ONNX模型格式

exportNetworkToTensorFlow函数将深度学习工具箱网络或层图保存为Python包中的TensorFlow模型。有关如何加载导出的模型并将其保存为标准TensorFlow格式的更多信息,请参见负载导出TensorFlow模型而且以标准格式保存导出的TensorFlow模型

通过使用ONNX作为中间格式,您可以与其他支持ONNX模型导出或导入的深度学习框架进行互操作。金宝app

相关的话题