1. ホーム
  2. python

[解決済み] 関数 tf.squeeze と tf.nn.rnn は何をするのですか?

2022-03-04 02:37:55

質問

関数 tf.squeeze と tf.nn.rnn は何をするのですか?

これらのAPIを検索してみたのですが、引数や例などが見つかりません。 また p_inputs を使用した次のコードで形成されます。 tf.squeeze を使用する意味と場合とは? tf.nn.rnn ?

batch_num = 10
step_num = 2000
elem_num = 26

p_input = tf.placeholder(tf.float32, [batch_num, step_num, elem_num])
p_inputs = [tf.squeeze(t, [1]) for t in tf.split(1, step_num, p_input)]

解決方法は?

このような質問に対する答えの最良の情報源は TensorFlow API ドキュメント . あなたが挙げた2つの関数は、データフロー・グラフの中で演算とシンボリックテンソルを作成します。特に

  • tf.squeeze() 関数は、最初の引数と同じ値で、異なる形状のテンソルを返す。サイズが1である次元は取り除かれる。例えば t はテンソルであり、形状は [batch_num, 1, elem_num] (ご質問のように) tf.squeeze(t, [1]) は同じ内容のテンソルを返しますが、サイズは [batch_num, elem_num] .

  • tf.nn.rnn() 最初の要素は与えられた入力に対するリカレントニューラルネットワークの出力を表し、2番目の要素はその入力に対するそのネットワークの最終的な状態を表します。TensorFlowのWebサイトには リカレントニューラルネットワークのチュートリアル をご覧ください。