2016-04-29 102 views
1

我是LSTM和Tensorflow的新手,我尝试使用LSTM模型来学习,然后对我拥有的一些大型数据集进行分类。 (我不担心我的意图是学习的准确性)。 我试图用类似于使用LSTM的PTB单词预测教程来实现模型。 教程(https://tensorflow.googlesource.com/tensorflow/+/master/tensorflow/models/rnn/ptb/ptb_word_lm.py)代码使用以下线使用我修改为我的例子如下模型Tensorflow LSTM模型测试

cost, state, _ = session.run([m.cost, m.final_state, eval_op], 
           {m.input_data: x, 
            m.targets: y, 
            m.initial_state: state}) 

运行会话(获取logits和使用它):

cost, state, _,output,logits = session.run([m.cost, m.final_state, eval_op, m.output,m.logits], 
           {m.input_data: x, 
            m.targets: y, 
            m.initial_state: state}) 

所以我的问题,如果有人能够帮助情况如下:

  • 如何建立的模型,而训练用于测试?什么 究竟发生在每个测试,训练和验证的教程使用3个模型?
  • 测试中的目标怎么样(如果我不知道他们,就说分类问题)。 run_epoch()中的更改可以通过使用培训期间构建的模型的方式完成。
  • 只是另一个问题:很难调试tensorflow图(我发现很难理解张量板可视化)我没有找到好的资源来学习tensorflow(网站似乎缺乏结构/文档)其他资源/调试方法在那里?

谢谢。

+0

也许,这些简单的LSTM示例解决了有关TensorFlow中基本LSTM的问题:https://github.com/sherjilozair/char-rnn-tensorflow或https://github.com/nlintz/TensorFlow-Tutorials/blob /master/7_lstm.py –

回答

0

回答我自己的问题,以帮助任何人在这里结束: 在验证/测试期间,向runepoch()指示它是验证/测试阶段(使用bool或其他方式)。 别叫成本运算(因为这是需要目标的唯一操作。)进行验证/测试阶段,因此,修改后的代码看起来是这样的:后来logits的

state, _,output,logits = session.run([m.final_state, eval_op, m.output,m.logits], 
          {m.input_data: x, 
           m.initial_state: state}) 

化妆用的calcluating准确性。