フィルターのクリア

globalAver​agePooling​1dLayer error

3 ビュー (過去 30 日間)
Bram Stegeman
Bram Stegeman 2022 年 1 月 16 日
編集済み: Bram Stegeman 2022 年 1 月 18 日
Dear Community,
I want to train and test a 1D convolutional network for sequence - to - sequence classification.
I have the following architecture:
layers = [ ...
sequenceInputLayer(numFeatures)
convolution1dLayer(filterSize,numFilters1,Padding="same")
reluLayer
convolution1dLayer(filterSize,numFilters1,Padding="same")
reluLayer
globalAveragePooling1dLayer
fullyConnectedLayer(numClasses)
softmaxLayer
classificationLayer( ...
'Classes',classes, ...
'ClassWeights',classWeights)];
If I include the globalAveragePooling1dLayer after my second relu layer than i get the following error:
" Error using trainNetwork (line 184) Invalid training data. For image, sequence-to-label, and feature classification tasks, responses must be categorical" .
Without the globalAveragePooling1dLayer I don't get the error and trainings starts. What is the problem?

採用された回答

Tomaso Cetto
Tomaso Cetto 2022 年 1 月 18 日
編集済み: Tomaso Cetto 2022 年 1 月 18 日
Hi Bram!
As you've noticed, the globalAveragePooling1dLayer plays a critical role here. This is because that layer removes the time dimension by pooling over it globally (i.e. keeping only the largest value in the sequence). This layer is useful for sequence-to-one tasks, where the output isn't a sequence. The output here would be a numClasses x numObservations array.
However, because yours is a sequence-to-sequence problem, you want the output to be a numClasses x numObservations x sequenceLength array (with the sequence dimension conserved). So in that case, the globalAveragePooling1dLayer isn't appropriate for your workflow, because of the fact it removes the sequence dimension.
Hope this helps, and let me know if you have any other questions!
Best,
Tomaso
  1 件のコメント
Bram Stegeman
Bram Stegeman 2022 年 1 月 18 日
Dear Tomaso,
Thanks for your clear explanation, this helps!
Best,
Bram

サインインしてコメントする。

その他の回答 (1 件)

yanqi liu
yanqi liu 2022 年 1 月 17 日
yes,sir,may be check Ydata,such as use
Ydata2 = categorical(Ydata);
to get categorical vector,then train
  1 件のコメント
Bram Stegeman
Bram Stegeman 2022 年 1 月 18 日
編集済み: Bram Stegeman 2022 年 1 月 18 日
Dear yanqi liu,
This was not the problem. See the anwser of Tomaso.
Best,
Bram

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeImage Data Workflows についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by