主要内容

将旧版神经网络代码转移到 dlnetwork 工作流

R2026b

旧版神经网络功能(例如与 network 对象相关的功能)将在以后的版本中删除。请改用 dlnetwork 对象和相关功能。

旧版神经网络对象已过时,并不太适合现代工作流。即将删除的部分功能是在 R2006a 之前引入的(例如 network 对象和 train 函数)。建议改用 dlnetwork 对象(在 R2019b 中引入)和相关功能(例如 trainnet 函数(在 R2023b 中引入)),它们具有以下优势:

  • dlnetwork 对象支持更广泛的网络架构,您可以使用 trainnet 函数训练这些网络,或者从外部平台导入这些网络。

  • dlnetwork 对象提供更大的灵活性,并且对 Deep Learning Toolbox™ 功能提供更广泛的支持。

  • dlnetwork 对象提供统一的数据类型,支持网络构建、预测、内置训练、压缩、Simulink®、代码生成、验证和自定义训练循环。

提示

要了解如何将 trainNetwork、SeriesNetwork 和 DAGNetwork 代码转移到 dlnetwork 工作流,请参阅Transition trainNetwork, SeriesNetwork, and DAGNetwork Code to dlnetwork Workflows。

对于表格数据工作流,您可以使用 fitrnet (Statistics and Machine Learning Toolbox) 和 fitcnet (Statistics and Machine Learning Toolbox) 函数训练神经网络,然后将它们转换为 dlnetwork 对象。

mdl = fitrnet(X,T);
net = dlnetwork(mdl);

对于其他类型的数据或需要更大灵活性的情况,您可以使用 trainingOptions 和 trainnet 函数训练神经网络。

options = trainingOptions("adam");
net = trainnet(X,T,layers,"mse",options);

或者,您也可以在时间序列建模器、深度网络设计器、回归学习器 (Statistics and Machine Learning Toolbox)和分类学习器 (Statistics and Machine Learning Toolbox)等 App 中以交互方式重新创建工作流,然后导出模型。

Time Series Modeler Data tab showing a summary of imported data, a plot of time series lengths, and a preview of the selected observation.

您可以使用以下 App 执行深度学习工作流:

要更新您的代码,通常最好的方法是从示例和参考页中获取代码,然后针对您的任务进行调整。您可以使用以下示例开始操作:

下表提供了有关更新代码的建议。有关更具体的信息,请参阅受影响功能的参考页。

注意

这些示例所使用的训练选项、模型架构和算法非常适合大多数任务,也可以针对大多数任务进行调整。如果需要更大的灵活性,或者希望完全复现算法,您可以实现自定义训练循环。有关自定义训练循环的详细信息,请参阅自定义训练循环。

类别即将删除的函数或对象建议
Appnnstart

对于深度学习工作流,建议改用以下 App 和实时编辑器任务:

神经网络时间序列、ntstool

时间序列建模器

神经网络模式识别、nprtool

分类学习器 (Statistics and Machine Learning Toolbox)

神经网络拟合、nftool

回归学习器 (Statistics and Machine Learning Toolbox)

神经网络聚类、nctool

数据聚类 (Statistics and Machine Learning Toolbox)实时编辑器任务

时间序列数据工作流

adapt, adaptwb, adddelay, closeloop, con2seq, distdelaynet, elmannet, extendts, getsignals, gettimesteps, narnet, narxnet, nncorr, noloop, openloop, preparets, removedelay, setsignals, settimesteps, tapdelay, timedelaynet

要了解有关时间序列数据工作流的详细信息,请参阅以下示例和主题:

网络构建

cascadeforwardnet, competlayer, configure, feedforwardnet, fitnet, gridtop, hextop, isconfigured, linearlayer, lvqnet, maxlinlr, network, newgrnn, newlind, newpnn, newrb, newrbe, patternnet, perceptron, regression, unconfigure, tritop

为了针对这些工作流设计和自定义您自己的神经网络,您可以使用深度学习层数组或 dlnetwork 对象来创建网络。要以交互方式创建和编辑神经网络并生成代码,请使用深度网络设计器。要了解有关神经网络构建工作流的详细信息,请参阅以下示例和主题:

训练和预测

train, sim

要了解有关神经网络训练和预测的详细信息,请参阅以下示例和主题:

可视化

errsurf, plotconfusion, plotep, ploterrcorr, ploterrhist, plotes, plotfit, plotinerrcorr, plotpc, plotperform, plotpv, plotregression, plotresponse, plotroc, plottrainstate, plotvec, plotwb, view

要了解有关可视化工作流的详细信息,请参阅以下示例和主题:

数据处理

catelements, catsamples, catsignals, cattimesteps, cellmat, combvec, getelements, divideblock, divideind, divideint, dividerand, dividetrain, fixunknowns, fromnndata, getsamples, gpu2nndata, ind2vec, lvqoutputs, mapminmax, mapstd, nncell2mat, nndata, nndata2gpu, nnsize, numelements, numfinite, numnan, numsamples, numsignals, numtimesteps, processpca, quant, removeconstantrows, removerows, seq2con, setelements, setsamples, tonndata, vec2ind

要了解有关神经网络的数据处理的详细信息,请参阅以下示例和主题:

传递函数和激活函数compet, elliotsig, elliot2sig, hardlim, hardlims, logsig, netinv, netprod, netsum, poslin, purelin, radbas, radbasn, satlin, satlins, softmax, tansig

要了解有关在神经网络中使用激活函数和传递函数的详细信息,请参阅以下示例和主题:

度量和损失函数

confusion, crossentropy, mae, mse, perform, roc, sae, sse

要了解有关在训练神经网络时使用度量和损失函数的详细信息,请参阅以下示例和主题:

Simulink 和代码生成

gensim, nndata2sim, sim2nndata, genFunction, getsiminit, setsiminit

要了解有关 Simulink 和神经网络的代码生成的详细信息,请参阅以下示例和主题:

数学运算

boxdist, convwf, dist, dotprod, gadd, gdivide, gmultiply, gnegate, gsqrt, gsubtract, linkdist, mandist, meanabs, meansqr, minmax, negdist, normc, normprod, normr, pnormc, scalprod, sumabs, sumsqr

要了解有关支持的数学和深度学习运算及层的详细信息,请参阅以下示例和主题:

自编码器

Autoencoder, decode, encode, generateFunction, generateSimulink, network, predict, plotWeights, stack, trainAutoencoder, view

要了解有关自编码器工作流的详细信息,请参阅以下示例和主题:

自组织映射

learnsom, learnsomb, plotsom, plotsomnc, plotsomhits, plotsomnd, plotsomplanes, plotsompos, plotsomtop, selforgmap

要了解有关自组织映射工作流的详细信息,请参阅以下示例和主题:

剪枝

prune, prunedata

要了解有关剪枝和其他神经网络压缩工作流的详细信息,请参阅以下示例和主题:

权重和偏置函数

concur, formwb, getwb, init, initcon, initlay, initlvq, initnw, initwb, initzero, midpoint, randnc, randnr, rands, randsmall, randtop, revert, separatewb, setwb

要了解有关初始化和自定义神经网络可学习参数的详细信息,请参阅以下示例和主题:

训练和学习算法

learncon, learngd, learngdm, learnh, learnhd, learnis, learnk, learnlv1, learnlv2, learnos, learnp, learnpn, learnwh, trainb, trainbfg, trainbr, trainbu, trainc, traincgb, traincgf, traincgptraingd, traingda, traingdm, traingdx, trainlm, trainoss, trainr, trainrp, trainru, trains, trainscg, tribas, srchbac, srchbre, srchcha, srchgol, srchhyb

要了解有关自定义训练算法的详细信息,请参阅以下示例和主题:

导数函数

bttderiv, defaultderiv, fpderiv, num2deriv, num5deriv, staticderiv

要了解有关自动微分工作流的详细信息,请参阅以下示例和主题:

另请参阅

(Statistics and Machine Learning Toolbox) | (Statistics and Machine Learning Toolbox) | | | | | | (Statistics and Machine Learning Toolbox) | (Statistics and Machine Learning Toolbox)

主题