import tensorflow as tf
import numpy as np
input_dim = 100
seq_length = 50
hidden_dim = 128
output_dim = 1
input_data = tf.placeholder(tf.float32, [None, seq_length, input_dim])
labels = tf.placeholder(tf.float32, [None, output_dim])
cell = tf.contrib.rnn.LSTMCell(hidden_dim)
outputs, states = tf.nn.dynamic_rnn(cell, input_data, dtype=tf.float32)
last_output = outputs[:, -1, :]
weight = tf.Variable(tf.random_normal([hidden_dim, output_dim]))
bias = tf.Variable(tf.random_normal([output_dim]))
prediction = tf.matmul(last_output, weight) + bias
loss = tf.reduce_mean(tf.square(prediction - labels))
optimizer = tf.train.AdamOptimizer(learning_rate=0.001).minimize(loss)
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
train_data = ...
train_labels = ...
num_epochs = 1000
for epoch in range(num_epochs):
_, current_loss = sess.run([optimizer, loss], feed_dict={input_data: train_data, labels: train_labels})
print("Epoch: {}, Loss: {}".format(epoch, current_loss))
test_data = ...
predictions = sess.run(prediction, feed_dict={input_data: test_data})