Как дать входной слой в массиве Layers в MATLAB? - PullRequest
1 голос
/ 25 марта 2019

Я пытаюсь построить нейронную сеть в 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.

, что я понимаю, потому что я не дал входной слой в массиве слоев. Но я не уверен, какой InputLayer я должен дать, так как Input не является ни изображением, ни последовательностью, а список доступных входных слоев:

1) imageInputLayer

2) image3dInputLayer

3) sequenceInputLayer

4) roiInputLayer взято из официальных документов Matlab.

Пожалуйста, дайте мне знать, какую альтернативу я могу использовать, кроме определения собственного слоя.

1 Ответ

1 голос
/ 29 марта 2019

Для всех, кто сталкивался с такой же проблемой и обращается за помощью в 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.

...