如何在 MATLAB 的 Layers 数组中给出输入层?

How to give the input layer in Layers array in MATLAB?

我正在尝试在 Matlab 中构建一个神经网络,它使用内置 dropoutLayer 在隐藏层上进行 dropout。所以代码如下:

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.

我明白了,因为我没有在层数组中给出输入层。但是我不确定我应该给出什么 InputLayer,因为输入不是图像也不是序列,可用输入层的列表是:

1) imageInputLayer

2) image3dInputLayer

3) sequenceInputLayer

4) roiInputLayer 取自官方 Matlab 文档。

请让我知道除了定义我自己的层之外我还可以使用什么替代方法。

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

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 数组中输入任何类型数据的方法。