我想在Matlab中使用深度学习工具箱中的trainNetwork
函数来训练一个具有5个输入图像的卷积神经网络。目前,我的训练数据集有一个具有5个输入(图像)的combinedDatastore
对象(ds
)。在使用trainNetwork(ds, lgraph, options)
时,我得到了以下错误:
Error using trainNetwork (line 165)
Invalid network.
Caused by:
Network: Too many input layers. The network must have one input layer.
Detected input layers:
layer 'imageinput3'
layer 'imageinput1'
layer 'imageinput2'
layer 'imageinput5'
and 1 other layers.
我该怎么做呢?我正在使用Matlab2019a。谢谢你的帮助!
发布于 2020-11-25 21:21:23
神经网络必须有一个输入层。对于MATLAB's documentation,输入层由输入图像大小指定,而不是您希望网络在其上训练的图像。
请查看此示例代码,了解如何创建lgraph。
创建一个图层数组。假设您的图像大小为28x28x3。
layers = [
imageInputLayer([28 28 3],'Name','input')
convolution2dLayer(3,16,'Padding','same','Name','conv_1')
batchNormalizationLayer('Name','BN_1')
reluLayer('Name','relu_1')];
从图层数组创建图层图。layerGraph按顺序连接层中的所有层。
lgraph = layerGraph(layers);
现在,您可以将训练图像传递给trainNetwork,如下所示:
net = trainNetwork(ds,lgraph,options);
注意:请确保您的ds看起来像这样,其中每个图像都有自己的真实值。ds
https://stackoverflow.com/questions/60847059
复制相似问题