LSTM входы для Tensorflow
Я пытаюсь создать сеть LSTM в Tensorflow, и я теряюсь в терминологии / основах. я имеюn примеры временных рядов такX=xn, гдеxi= [[Х11x12,Икс13],...,[Иксm1xm2,Иксm3]] и где хii это поплавок. Прежде всего я хочу обучить модель, которая дала начало последовательности ([x11x12,Икс13]) Я могу предсказать остальную часть последовательности. Затем позже я надеюсь включить классификатор, чтобы предсказать, какой двоичный класс каждыйxi принадлежит.
Итак, моя проблема в том, что я могу подать в начало и вытащить конец моей модели? Пока у меня есть что-то, что выглядит ниже
class ETLSTM(object):
"""docstring for ETLSTM"""
def __init__(self, isTraining, config):
super(ETLSTM, self).__init__()
# This needs to be tidied
self.batchSize = batchSize = config.batchSize
self.numSteps = numSteps = config.numSteps
self.numInputs = numInputs = config.numInputs
self.numLayers = numLayers = config.numLayers
lstmSize = config.lstm_size
DORate = config.keep_prob
self.input_data = tf.placeholder(tf.float32, [batchSize, numSteps,
numInputs])
self.targets = tf.placeholder(tf.float32, [batchSize, numSteps,
numInputs])
lstmCell = rnn_cell.BasicLSTMCell(lstmSize, forgetbias=0.0)
if(isTraining and DORate < 1):
lstmCell = tf.nn.rnn_cell.DropoutWrapper(lstmCell,
output_keep_prob=DORate)
cell = tf.nn.rnn_cell.MultiRNNCell([lstmCell]*numLayers)
self._initial_state = cell.zero_state(batchSize, tf.float32)
# This won't work with my data, need to find what goes in...
with tf.device("/cpu:0"):
embedding = tf.get_variable("embedding", [vocab_size, size])
inputs = tf.nn.embedding_lookup(embedding, self._input_data)
if(isTraining and DORate < 1):
inputs = tf.nn.dropout(inputs, DORate)
РЕДАКТИРОВАТЬ: Конкретно, как мне закончить__init__
Функция так, чтобы это было совместимо с моими данными?