Der Batche-Ansatz für RNN im Tensorflow ist mir nicht klar. Zum Beispiel tf.nn.rnn Nehmen Sie als Eingabe Liste von Tensors [BATCH_SIZE x INPUT_SIZE]. Normalerweise füttern wir Session-Chargen von Daten, warum also eine Chargenliste, nicht eine Charge?RNN & Batches in Tensorflow
Das ist für mich zur nächsten Verwirrung führt:
data = []
for _ in range(0, len(train_input)):
data.append(tf.placeholder(tf.float32, [CONST_BATCH_SIZE, CONST_INPUT_SIZE]))
lstm = tf.nn.rnn_cell.BasicLSTMCell(CONST_NUM_OF_HIDDEN_STATES)
val, state = tf.nn.rnn(lstm, data, dtype=tf.float32)
I Liste der Tensoren pass [CONST_BATCH_SIZE x CONST_INPUT_OTPUT_SIZE] zu tf.nn.rnn
und Ausgabewert bekam die Liste der Tensoren ist [CONST_BATCH_SIZE x CONST_NUM_OF_HIDDEN_STATES]. Jetzt möchte ich softmax für alle HIDDEN_STATES Ausgänge verwenden und Gewichte mit matmaul berechnen müssen + Bias
Sollte ich für matmul:
weight = tf.Variable(tf.zeros([CONST_NUM_OF_HIDDEN_STATES, CONST_OTPUT_SIZE]))
for i in val:
mult = tf.matmul(i, weight)
bias = tf.Variable(tf.zeros([CONST_OTPUT_SIZE]))
prediction = tf.nn.softmax(mult + bias)
Oder sollte ich 2D-Array zu erstellen aus val
und dann tf.matmul
verwenden, ohne for
?
Ausgabe von RNN ist 3D (Liste der 2d) und softmax_w ist 2D, das ist die Frage: sollte ich in Chargen durchlaufen oder erstellen 2D-Array von 3D für Ausgänge – Brans
können Sie diese Dimension mit Beispiel aufschreiben, wäre es einfach zu verstehen sein – rrb