V-antena and Tanimoto's page

谷本の備忘録・雑記帳・work

>

SAMPLEのTRANSLATE.PYを試す

使用環境: Ubuntu 16.10 Tensorflow-gpu (ppi install)

またもや、tensorflow/modelsが見当たらない。
そこで、旧い版数のところからソースを持ってきた。

しかし、旧い版数ではエラーになったので、いくつかのpythonコードを引っ張ってきたら、なんとか動いた。(どうも、pipからではなく、ソースからした方が良かったのかも)

'https://github.com/tensorflow/models/blob/master/tutorials/rnn/translate/translate.py
( dtype=dtypeの部分をコメント化もした)
'https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/rnn/python/ops/rnn_cell.py
'https://github.com/petewarden/tensorflow_ios/blob/master/tensorflow/python/ops/seq2seq.py
'https://github.com/tensorflow/models/blob/master/tutorials/rnn/translate/seq2seq_model.py
'https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/rnn/python/ops/core_rnn_cell_impl.py

'https://www.codatlas.com/github.com/tensorflow/tensorflow/master/tensorflow/con
trib/legacy_seq2seq/python/ops/seq2seq.py
'https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/platform
/app.py
'https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/client/s
ession.py

また、ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[2048,2048] translate.pyというエラーになったので、translate.py中のサイズを変更。

tf.app.flags.DEFINE_integer(“from_vocab_size”, 40000, “English vocabulary size.”)
tf.app.flags.DEFINE_integer(“to_vocab_size”, 40000, “French vocabulary size. ”) 
 この辺は20000に変更
tf.app.flags.DEFINE_integer(“size”, 1024, “Size of each model layer.”)
上記の1024を512にしたところ動いた
GPUメモリー使用量は、5.8GB
(当方のGPUは、GTX-1060(6GB)なので、originalではだめだったみたい)
サイズやlayer数を変えればよいみたい。

約34万stepはしないといけないみたい。私のマシンでは1時間に1万stepぐらいしか進まな
い。step time=0.27なので26時間ぐらいかかりそう。
'http://qiita.com/KojiOhki/items/45df6a18b08dfb63d4f9

2017/2/23追記
36万stepまで進んだところで、止めて、翻訳の実験。
エラー発生。 translate.pyで下記を変更
' Load vocabularies.
en_vocab_path = os.path.join(FLAGS.data_dir,“vocab%d.from” % FLAGS.from_vocab_size)
fr_vocab_path = os.path.join(FLAGS.data_dir,“vocab%d.to” % FLAGS.to_vocab_size)
en_vocab, _ = data_utils.initialize_vocabulary(en_vocab_path)
_, rev_fr_vocab = data_utils.initialize_vocabulary(fr_vocab_path)
vocab%d.from をvocab%d.enに
vocab%d.toをvocab%d.frに 変更したところ動いた。

翻訳は、雑誌に載っている例の様にはならず、_unkが多い。
回数が少ないせいなのか、vocabularyのサイズを減らしたせいなのかは不明。

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。