2017-09-08 16 views
0

私は最近、Theanoをバックエンドとして使用して、Kerasを前提として以前のモデリング作業を行っていた、サポートされていない20年以上のバニラANSI Cライブラリを放棄することに決めました。私はCで行うことができるTheanoで同様のことをモデル化できるようにしたいと考えています。双方向のRNNトレーニングは可能ですか?

代表的なモデリングのシナリオは、1つ以上の隠れ層を介してAとBの間で双方向にマップするようにネットワークを訓練することです。

A <==> h1 <==> hn <==> B 

私の研究は、表現の異なる種類(たとえば、あなたが単語「犬」を聞くと、文字がどのように見えるかを知っている、またはあなたが手紙DOGを読み、それらの文字がのように聞こえるかを知ることができ間のマッピングを必要とします)。このアーキテクチャでは、AとBの両方が入力であり、時には出力である場合もあります。 Sequentialモデルの説明を読んだ後、明示的に最初のレイヤーがあるため、Kerasがこれを許可することは明らかではありません。したがってAが最初のレイヤーになることもありますが、Bが最初のレイヤーになることもあります。 Kerasレイヤーがである可能性があります入力と出力レイヤの両方ですか?

+0

これはスティックの途中にある可能性がありますが、モデルを1方向に訓練して、ウェイトを反転させ、レイヤーごとに新しいモデルにロードすることができます。 – DJK

+0

AとBを複製できる私は{A_in、B_in}と{A_out、B_out}を持ち、ネットワークをフィードフォワードにする –

答えて

0

モデルを元に戻すことは簡単ではないようです。今後のとき

は、次の操作を行い完全に接続されたニューロンを想像してみて:

output = w1*i1 + w2*i2 + w3*i3 + bias #i1 to i3 are input values 

今すぐ後方に行くしようとしたとき、あなたは重みとバイアスを知っていても、I1、I2のための無限のソリューションがあり、およびi3。それらは1つの方程式の3つの変数です。

おそらく考えられるアプローチ(これについて起こりうることについてはわかりません)は、両方の入力を同時に受け入れ、両方の値を出力するモデルを作成することです。

実際の値として1つを入力し、それ以外のものを0などと入力できます。