質問: CNNなどのニューラルネットワークでの出力の直前に、全結合をつけることがあります。 この場合、ミニバッチでサンプリングしたデータは、全てn次元に整理されてしまいます。 画像処理の場合、1、2、3、・・・といった手書き数字画像がサンプリングされた場合、畳み込み層ではチャンネルが別れているので、理屈がわかるのですが、全結合層では、全部が、一つの列におさまって出力へと向かいます。なぜ、これで学習できているのかわかりません。学習する際の出力は、Softmaxで得られた確率なので、0-9 までのどれか一つになるはずです。例えば5、7、0、3、という4つのバッチデータがあった場合どうやって、学習しているのでしょうか。 ![![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/9872d3863342dc20ce037a0c0ffce990.png)
回答: フレームワークでは、バッチサイズで、Tensorの入力データから、行列出力まで維持されていました。 batch_size = 64 torch.Size([64, 1, 28, 28]) # 入力データ torch.Size([64, 64, 12, 12]) # 畳み込み層 torch.Size([64, 9216]) # 全結合層 torch.Size([64, 10]) # 出力層