我想使用其深度学习工具箱中的trainNetwork
函数在Matlab中用5个输入图像训练卷积神经网络。目前,我的训练数据集中有一个combinedDatastore
对象(ds
),带有5个输入(图像)。使用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.
我该如何处理?我正在使用Matlab 2019a。谢谢您的帮助!
答案 0 :(得分:0)
神经网络必须具有1个输入层。参考MATLAB's documentation,输入图层是由输入图像的大小指定的,而不是您希望网络训练的图像。
查看此示例代码,了解如何创建lgraph。
创建一个图层数组。假设您的图片尺寸为28x28x3。
true
从图层数组创建图层图。 layerGraph依次连接图层中的所有图层。
false
现在,您可以按照以下方式将训练图像传递到trainNetwork:
layers = [
imageInputLayer([28 28 3],'Name','input')
convolution2dLayer(3,16,'Padding','same','Name','conv_1')
batchNormalizationLayer('Name','BN_1')
reluLayer('Name','relu_1')];
注意:请确保您的ds看起来像这样,其中每个图像都有其自己的地面真实值。 ds