@takakmg

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

並列にモデルを並べる方法

解決したいこと

pytorchで作ったニューラルネットワークを並列に並べて巨大なニューラルネットワークを作る方法

内容

初心者でよくわかっていなくて申し訳ないのですが、
pytorchにおいて、事前に学習済みの4層の3つのモデルを並列に繋げて、最終層に3→1の層を入れることで、一つの巨大なニューラルネットワークを作り、その上で再学習させたいと考えています。(アンサンブルしたいというようなイメージです。)
しかし、方法がわかりません。どのようなコードを組めば良いのでしょうか。

0 likes

2Answer

Comments

  1. @takakmg

    Questioner

    回答ありがとうございます。
    英語が得意なわけではないので、読み切れていなければ申し訳ありませんが、以下の2点で違っていると考えています。
    ①3つのモデルを統合する最終層でもvotingなどではなく、nn.linearなどを使って誤差逆伝播させたいです。また、これは、nice to haveでmustではないですが、1から学習させ直すよりは、すでに学習済みのモデルを再学習できたら嬉しいなと考えています。
    ②また、3つのモデルは、異なる対象の予測から転移学習したものなので、ensemble torchのもののように等価なものではないです。
    例えば、現在私が扱っているものとは異なりますが、
    A)猫を判定するNNを転移させて人間の性別を画像診断するモデル
    B)犬を判定するNNを転移させて人間の性別を画像診断するモデル
    C)熊を判定するNNを転移させて人間の性別を画像診断するモデル
    のような3つを、並列に並べて、最終層を追加して、アンサンブルさせたいという感じです。

    調べてみている感じだと線型結合させたいので「スタッキングさせたい」、という感じのようです。
  2. お力添えになれずすいません明文化されたことで答えが見つかったようでよかったです.

Your answer might help someone💌