【发布时间】:2016-06-22 21:17:13
【问题描述】:
我正在尝试在 Tensorflow 中创建一个 LSTM 网络,但我迷失了术语/基础知识。我有 n 个时间序列示例,所以 X=xn,其中 xi=[[x11x12,x13],...,[xm1xm 2,xm3]] 和其中 xii 是一个浮点数。首先,我想训练一个给定序列开始的模型([x11x12 sup>,x13]) 我可以预测序列的其余部分。然后以后希望包含一个分类器来预测每个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__函数,使其与我的数据兼容?
【问题讨论】:
标签: python machine-learning tensorflow lstm