2016-04-29 99 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準確性。