如何在MATLAB的Layers数组中提供输入图层?

时间:2019-03-25 12:38:27

标签: matlab neural-network deep-learning octave matlab-guide

我正在尝试在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文档。

请让我知道除了定义自己的图层之外,我还可以使用其他方法。

1 个答案:

答案 0 :(得分:1)

对于遇到相同问题并正在StackOverflow寻求帮助的每个人,请查看MathWorks社区上发布的以下链接。实际上,这似乎适用于非图像和非序列输入。

https://in.mathworks.com/matlabcentral/answers/395817-can-i-use-trainnetwork-to-train-deep-neural-networks-with-non-image-or-non-sequence-data-for-regre

这说明了一种使用imageInputLayer在Layers数组中输入任何类型的数据的方法。