入力: 10 個の「母音」のセット、10 個の「子音」のセット、すべての画像に 1 つの母音と 1 つの子音の両方が書き込まれている画像データセット。
タスク: 与えられた画像から母音と子音を識別します。
アプローチ: 最初に画像に CNN 隠れ層を適用し、次に 2 つの並列の全結合/密層を適用します。1 つは画像内の母音を分類し、もう 1 つは画像内の子音を分類します。
問題: VGG や GoogleNet などの事前トレーニング済みモデルを使用しています。その事前トレーニング済みモデルを変更して、2 つの並列高密度レイヤーを適用し、2 つの出力を返す方法。
私は 2 つの異なるモデルを試しましたが、私の質問は、このタスクのために事前トレーニング済みのモデルを変更できるかということです。
現在、私のモデルには「fc」レイヤーが 1 つしかありません。このように、最終的な「fc」レイヤーのニューロン数を変更しました
final_in_features = googlenet.fc.in_features
googlenet.fc = nn.Linear(final_in_features, 10)
ただし、両方の「fc」レイヤーが非表示レイヤーと並列に接続されるように、もう 1 つ fc レイヤーを追加する必要があります。
現在、モデルは 1 つの出力のみを返します。
outputs1 = googlenet(inputs)
タスクは、両方の「fc」レイヤーから 2 つの出力を返すことで、次のようになります。
outputs1, outputs2 = googlenet(inputs)