次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、初歩的な RNN を実装してください.
import tensorflow as tf
import numpy as np
n_inputs = 3
n_neurons = 5
X0 = tf.placeholder(tf.float32, [None, n_inputs])
X1 = tf.placeholder(tf.float32, [None, n_inputs])
# Q1:BasicRNNCell を用いて RNN をアンロールするために必要となる記憶セルを定義
basic_cell = ##########
[Q1の選択肢]
1. tf.nn.rnn_cell.BasicRNNCell(num_units=X0)
2. tf.nn.rnn_cell.BasicRNNCell(num_units=n_inputs)
3. tf.nn.rnn_cell.BasicRNNCell(num_units=n_neurons)
# Q2:static_rnn() 関数に入力テンソルを与え、出力テンソルを得てください.
output_seqs, states = ##########
[Q2の選択肢]
1. tf.nn.static_rnn(basic_cell, [X0, X1], dtype=tf.float32)
2. tf.nn.static_rnn([X0, X1], dtype=tf.float32)
3. tf.nn.static_rnn(basic_cell([X0, X1]), dtype=tf.float32)
Y0, Y1 = output_seqs
init = tf.global_variables_initializer()
X0_batch = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 0, 1]])
X1_batch = np.array([[9, 8, 7], [0, 0, 0], [6, 5, 4], [3, 2, 1]])
with tf.Session() as sess:
init.run()
Y0_val, Y1_val = sess.run([Y0, Y1], feed_dict={X0: X0_batch, X1: X1_batch})
print(Y0_val)
print(Y1_val)