for batch_index in xrange(cfg.train_sets.cur_frame_num / cfg.batch_size): # loop over mini-batches [reconstruction_cost, free_energy_cost] = pretraining_fns[i](index=batch_index, lr=pretrain_lr, momentum=momentum) r_c.append(reconstruction_cost) fe_c.append(free_energy_cost) cfg.train_sets.initialize_read() log('> pre-training layer %i, epoch %d, r_cost %f, fe_cost %f' % (i, epoch, numpy.mean(r_c), numpy.mean(fe_c))) # output nnet parameters and training state, for training resume _nnet2file(dnn.layers, filename=wdir + '/nnet.tmp') save_two_integers((i, epoch+1), wdir + '/training_state.tmp') start_epoch_index = 0 save_two_integers((i+1, 0), wdir + '/training_state.tmp') # save the pretrained nnet to file # save the model and network configuration if cfg.param_output_file != '': _nnet2file(dnn.layers, filename=cfg.param_output_file) log('> ... the final PDNN model parameter is ' + cfg.param_output_file) if cfg.cfg_output_file != '': _cfg2file(dnn.cfg, filename=cfg.cfg_output_file) log('> ... the final PDNN model config is ' + cfg.cfg_output_file) # output the model into Kaldi-compatible format if cfg.kaldi_output_file != '': dnn.write_model_to_kaldi(cfg.kaldi_output_file) log('> ... the final Kaldi model is ' + cfg.kaldi_output_file) # finally remove the training-resuming files os.remove(wdir + '/nnet.tmp') os.remove(wdir + '/training_state.tmp')
lr=pretrain_lr, momentum=momentum) r_c.append(reconstruction_cost) fe_c.append(free_energy_cost) cfg.train_sets.initialize_read() log('> pre-training layer %i, epoch %d, r_cost %f, fe_cost %f' % (i, epoch, numpy.mean(r_c), numpy.mean(fe_c))) # output nnet parameters and training state, for training resume _nnet2file(dnn.layers, filename=wdir + '/nnet.tmp') save_two_integers((i, epoch + 1), wdir + '/training_state.tmp') start_epoch_index = 0 save_two_integers((i + 1, 0), wdir + '/training_state.tmp') # save the pretrained nnet to file # save the model and network configuration if cfg.param_output_file != '': _nnet2file(dnn.layers, filename=cfg.param_output_file) log('> ... the final PDNN model parameter is ' + cfg.param_output_file) if cfg.cfg_output_file != '': _cfg2file(dnn.cfg, filename=cfg.cfg_output_file) log('> ... the final PDNN model config is ' + cfg.cfg_output_file) # output the model into Kaldi-compatible format if cfg.kaldi_output_file != '': dnn.write_model_to_kaldi(cfg.kaldi_output_file) log('> ... the final Kaldi model is ' + cfg.kaldi_output_file) # finally remove the training-resuming files os.remove(wdir + '/nnet.tmp') os.remove(wdir + '/training_state.tmp')