著者の微妙に動かないコードを動かすだけです
- paper: [1602.04341] Attention-Based Convolutional Neural Network for Machine Comprehension
- github: GitHub - yinwenpeng/MachineComprehension
- cis や word2embedding などのライブラリは Yin さんの別のレポジトリにあるのでコピーして持ってくる
- train_arc1_v4.py というやつは動きます
- 精度が高いのは train_entailment_v3.py というやつのはずで、こっちがそのままだと動かない、動かしたい
- まず preprocess_mctest.py をいじいじして必要なファイル(vocab_DQAAAA.txt まで)を作る
- DQAAAA とか DPNQ とか書いてあるのはデータの内容の形式です、 document, question, answer, positive, negative がどの順で書いてあるか、という感じ
- しかしエラーが出るので露頭に迷う。 DPNQ.txt まで生成されない(Statement ファイル群がない)のでそもそもデータが足りない
- github2: GitHub - BenjaminHess/MachineComprehension
- ちょっとコードが整理された fork だけど、特に改善されている雰囲気ではない
- このままでは相変わらず train_entailment_v3.py は動きません(データの読み込みで sharedvariable 宣言するところでエラー)
- まず Statement の在り処が書いてあるので、データを引っ張ってきて Yin さんの方のにコピーするのでもよいです(DPNQ はすでにあるのでどっちでもいい)、とにかくデータはこれで揃うことになります
- で、試行錯誤する
- 原因は loadData.py L1342 の読み込みのとこで lower() を入れてない部分だと気付いた
- 入れれば word の id 取ってくる部分を失敗せずに必要な theano.shared() が通ってくれます
- でも精度が論文通りにならず困る、辛抱強く epoch 上がるのを待てばいいのだろうか……