从 R2024a 开始,不推荐使用 LayerGraph
对象,请改用 dlnetwork
对象。
目前没有停止支持 LayerGraph
对象的计划。但是,推荐改用 dlnetwork
对象,此类对象具有以下优势:
dlnetwork
对象是一种统一的数据类型,支持网络构建、预测、内置训练、可视化、压缩、验证和自定义训练循环。
dlnetwork
对象支持更广泛的网络架构,您可以创建或从外部平台导入这些网络架构。
trainnet
函数支持 dlnetwork
对象,这使您能够轻松指定损失函数。您可以从内置损失函数中进行选择或指定自定义损失函数。
使用 dlnetwork
对象进行训练和预测通常比使用 LayerGraph
和 trainNetwork
工作流更快。
大多数支持 LayerGraph
对象的函数也支持 dlnetwork
对象。下表显示了 LayerGraph
对象的一些典型用法,以及如何更新您的代码以改用 dlnetwork
对象函数。
不推荐 | 推荐 |
---|
lgraph = layerGraph; | net = dlnetwork; |
lgraph = layerGraph(layers); | net = dlnetwork(layers,Initialize=false); |
lgraph = layerGraph(net); | net = dag2dlnetwork(net); |
lgraph = addLayers(lgraph,layers); | net = addLayers(net,layers); |
lgraph = removeLayers(lgraph,layerNames); | net = removeLayers(net,layerNames); |
lgraph = replaceLayer(lgraph,layerName,layers); | net = replaceLayer(net,layerName,layers); |
lgraph = connectLayers(lgraph,s,d); | net = connectLayers(net,s,d); |
lgraph = disconnectLayers(lgraph,s,d); | net = disconnectLayers(net,s,d); |
plot(lgraph); | plot(net); |
要训练指定为 dlnetwork
对象的神经网络,请使用 trainnet
函数。
在 LayerGraph
对象中,不使用输出层,而是使用 trainnet
函数的损失函数参量指定损失函数。