如何在 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。这实际上似乎适用于非图像和非序列输入。
这说明了一种使用 imageInputLayer 在 Layers 数组中输入任何类型数据的方法。
我正在尝试在 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。这实际上似乎适用于非图像和非序列输入。
这说明了一种使用 imageInputLayer 在 Layers 数组中输入任何类型数据的方法。