2015-11-29 2 views
1

Я тренировался модель языка с использованием Tensorflow, как указано в этой одной из tutorialtensorflow РНН модель путь

Для обучения я использовал следующую команду.

bazel-bin/tensorflow/models/rnn/ptb/ptb_word_lm --data_path=./simple-examples/data/ --model small 

Тренировка прошла успешно с помощью следующих o/p в конце.

Epoch: 13 Train Perplexity: 37.196 
Epoch: 13 Valid Perplexity: 124.502 
Test Perplexity: 118.624 

Но я все еще смущен, где хранится учебная модель и как ее использовать.

ответ

0

Демо-код, вероятно, не включает возможность сохранения модели; вы можете явно использовать tf.train.Saver для сохранения и восстановления переменных на контрольных точках и из них.

См. doc и examples.

Это довольно прямолинейно согласно документу. В приведенном ниже примере я сохранил все переменные в модели. Вместо этого вы можете выбрать, какие переменные (ы) сохранить, следуя examples.

# ... 
tf.initialize_all_variables().run() 
#################################################### 
# Add ops to save and restore all the variables. 
#################################################### 
saver = tf.train.Saver() 

for i in range(config.max_max_epoch): 
    lr_decay = config.lr_decay ** max(i - config.max_epoch, 0.0) 
    m.assign_lr(session, config.learning_rate * lr_decay) 

    print("Epoch: %d Learning rate: %.3f" % (i + 1, session.run(m.lr))) 
    train_perplexity = run_epoch(session, m, train_data, m.train_op, 
           verbose=True) 
    print("Epoch: %d Train Perplexity: %.3f" % (i + 1, train_perplexity)) 
    valid_perplexity = run_epoch(session, mvalid, valid_data, tf.no_op()) 
    print("Epoch: %d Valid Perplexity: %.3f" % (i + 1, valid_perplexity)) 

    #################################################### 
    # Save the variables to disk. 
    #################################################### 
    save_path = saver.save(session, "/tmp/model.epoch.%03d.ckpt" % (i + 1)) 
    print("Model saved in file: %s" % save_path) 
    # .... 

В моем случае, каждый файл контрольной точки имеет размер диска 18.61M (--model small).

Что касается использования модели, просто следуйте doc, чтобы восстановить контрольные точки из сохраненных файлов. Тогда вам будет угодно, как это использовать.

+0

Спасибо за предоставленную подсказку. Но я новичок, вы можете дать более ясный пример того, как обучать и сохранять модель с кодом, который дополняет демо-модель, приведенная в учебнике. – src79

+0

Спасибо, зеленый за код. :) – src79

+0

Если 'sess' в' save_path = saver.save (sess, "/tmp/model.epoch.%03d.ckpt"% (i + 1)) 'будет' session', тот же сеанс, упомянутый выше, как в 'valid_perplexity = run_epoch (session, mvalid, valid_data, tf.no_op())' и другие? – lerner

Смежные вопросы