我正在尝试在Matlab中构建一个神经网络,该网络会使用内置的dropoutLayer
在隐藏层上进行删除。因此代码如下:
layers = [
fullyConnectedLayer(hidden_layer_nodes(1))
dropoutLayer(0.5)
fullyConnectedLayer(hidden_layer_nodes(2))
dropoutLayer(0.5)
fullyConnectedLayer(hidden_layer_nodes(3))
dropoutLayer(0.5)
fullyConnectedLayer(output_layer_size)
regressionLayer
];
然后出现以下错误:
Error in main (line 54)
net = trainNetwork(X,y,layers,options);
Caused by:
Network: Missing input layer. The network must have one input layer.
Layer 1: Missing input. Each layer input must be connected to the output of another layer.
我了解这是因为我没有在layers数组中指定输入图层。但是我不确定应该提供什么InputLayer,因为Input既不是图像也不是可用输入层的序列和列表是:
1)imageInputLayer
2)image3dInputLayer
3)sequenceInputLayer
4)roiInputLayer 取自官方的Matlab文档。
请让我知道除了定义自己的图层之外,我还可以使用其他方法。
答案 0 :(得分:1)
对于遇到相同问题并正在StackOverflow寻求帮助的每个人,请查看MathWorks社区上发布的以下链接。实际上,这似乎适用于非图像和非序列输入。
这说明了一种使用imageInputLayer在Layers数组中输入任何类型的数据的方法。