問題タブ [recurrent-neural-network]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - model.fit の次元数が間違っています
このSimpleRNNを実行しようとしています:
以下に示すように、エラーは model.fit にあります。
エラーは、次元の数が間違っていることを示しています。3 である必要がありますが、2 しかありません。それが参照している次元は何ですか?
python - tensorflow で双方向 RNN に可変バッチ サイズを使用する方法
tensorflow は、双方向 RNN の可変バッチ サイズをサポートしていないようです。この例では、 は Python 整数である にsequence_length
関連付けられています。batch_size
トレーニングとテストに異なるバッチ サイズを使用するにはどうすればよいですか?
python - Tensorflow の Char-RNN
シンプルな RNN をテンソルフローで動作させようとしていますが、いくつか問題があります。
私が今やろうとしているのは、セルタイプとして LSTM を使用して RNN のフォワードパスを単純に実行することです。
いくつかのニュース記事をスクレイピングして、それらを RNN にフィードしたいと考えています。すべての記事の連結で構成される文字列を文字に分割し、文字を整数にマップしました。次に、これらの整数をワンホット エンコードしました。
次にテンソルフローコードです。データ内のすべての文字を実行し、フォワード パスごとに 25 文字を使用したいと考えています。私の最初の質問は、バッチ サイズに関するものです。先ほど述べた方法でこれを実行したい場合、私のバッチ サイズは 1 ですよね? したがって、入力内の 1 つの文字に対応する各ベクトルの形状は [1,vocab_size] であり、入力にはこれらのベクトルが 25 個あります。そこで、次のテンソルを使用しました。
rnn 関数が期待する形式であるため、最後のテンソルを作成する必要がありました。
次に、変数のスコープで問題が発生しました。以下のエラーが表示されます。
コードで実際に変数を指定していないため、なぜこのエラーが発生するのかわかりません。変数は rnn および rnn_cell 関数内でのみ作成されます。誰かがこのエラーを修正する方法を教えてもらえますか?
入力が tf.int32 型であるため、現在発生している別のエラーは型エラーですが、LSTM 内で作成された非表示層は tf.float32 型であり、rnn_cell.py コード内の線形関数は連結します。これらの 2 つのテンソルを計算し、それらに重み行列を掛けます。なぜこれが不可能なのでしょうか。入力がワンホット エンコードされて int32 型になるのは比較的一般的だと思います。
一般に、char-rnns のトレーニング時にバッチ サイズを 1 標準にするというこのアプローチはありますか? Andrej Karpathy によるコードを見たことがあります。そこでは、彼は基本的な numpy で char-rnn をトレーニングし、同じ手順を使用します。ここでは、長さ 25 のシーケンスでテキスト全体を単純に調べます。コードは次のとおりです: https:// gist.github.com/karpathy/d4dee566867f8291f086
theano - Theano チュートリアルの RNN のパラメーター
RNN に関する Theano チュートリアル ( http://deeplearning.net/tutorial/rnnslu.html ) に従っていますが、それについて 2 つの質問があります。初め。このチュートリアルでは、繰り返しは次のように機能します。
def recurrence(x_t, h_tm1):
h_t = T.nnet.sigmoid(T.dot(x_t, self.wx) + T.dot(h_tm1, self.wh) + self.bh)
s_t = T.nnet.softmax(T.dot(h_t, self.w) + self.b)
return [h_t, s_t]
h_t に h0 を追加しないのはなぜですか?(つまりh_t = T.nnet.sigmoid(T.dot(x_t, self.wx) + T.dot(h_tm1, self.wh) + self.bh + self.h0)
)
第二に、なぜoutputs_info=[self.h0, None]
ですか?outputs_info が初期化結果であることはわかっています。だから私は思うoutputs_info=[self.bh+self.h0, T.nnet.softmax(T.dot(self.bh+self.h0, self.w_h2y) + self.b_h2y)]
neural-network - 損失が減少しなくなったときに RNN モデルをトレーニングするための一般的なルール
私はRNNモデルを持っています。約 10K の反復の後、損失は減少しなくなりますが、損失はまだそれほど小さくはありません。最適化が極小値に閉じ込められていることを常に意味しますか?
一般的に、この問題に対処するために私が取るべき行動は何ですか? さらにトレーニング データを追加しますか? 別の最適化スキームを変更しますか (現在 SGD)? または他のオプション?
どうもありがとう!
JC
machine-learning - LSTM に続く平均プーリング
Keras 1.0 を使用しています。私の問題はこれ ( Keras で Mean Pooling レイヤーを実装する方法) と同じですが、そこにある答えは私にとって十分ではないようです。
次のコードは機能しません。
を設定しないとreturn_sequences=True
、 を呼び出すと次のエラーが発生しますAveragePooling1D()
。
そうしないと、次の呼び出し時にこのエラーが発生しますDense()
。
neural-network - Tensorflow 翻訳トレーニング - いつ停止しますか?
Google の Tensorflow の例を使用しています。うまく走れますが、while True:
ループがあり、トレーニングが止まらないようです。参考:
translate.py
コーインtrain()
:
python - Tensorflow でフィード フォワード レイヤーとリカレント レイヤーを混合しますか?
Tensorflow でフィードフォワード層と再帰層を混在させることができた人はいますか?
例: input->conv->GRU->linear->output
フィードフォワード層を使用して状態を定義せずに自分のセルを定義し、MultiRNNCell 関数を使用して次のようにスタックできると想像できます。
セル = tf.nn.rnn_cell.MultiRNNCell([conv_cell,GRU_cell,linear_cell])
これで生活がぐんと楽になる…