valid_error = [] while (not valid_sets.is_finish()): valid_sets.load_next_partition(valid_xy) for batch_index in xrange(valid_sets.cur_frame_num / batch_size): # loop over mini-batches valid_error.append(valid_fn(index=batch_index)) valid_sets.initialize_read() log('> epoch %d, lrate %f, validation error %f' % (lrate.epoch, lrate.get_rate(), numpy.mean(valid_error))) log('> epoch %d, smallest lrate %f' % (lrate.epoch, lrate.lowest_error)) lrate.get_next_rate(current_error = 100 * numpy.mean(valid_error)) # output conv layer config # for i in xrange(len(conv_layer_configs)): # conv_layer_configs[i]['activation'] = activation_to_txt(conv_activation) # with open(wdir + '/conv.config.' + str(i), 'wb') as fp: # json.dump(conv_layer_configs[i], fp, indent=2, sort_keys = True) # fp.flush() # output the conv part _cnn2file(cnn.conv_layers, filename=conv_output_file) # output the full part _nnet2file(cnn.full_layers, filename=full_output_file) _nnet2file(cnn.ivec_layers, set_layer_num = len(ivec_layers_sizes) + 1, filename=ivec_output_file, withfinal=False) # _nnet2kaldi(str(cnn.conv_output_dim) + ':' + full_nnet_spec, filein = wdir + '/nnet.finetune.tmp', fileout = full_output_file) end_time = time.clock() print >> sys.stderr, ('The code for file ' + os.path.split(__file__)[1] + ' ran for %.2fm' % ((end_time - start_time) / 60.))
valid_error = [] while (not valid_sets.is_finish()): valid_sets.load_next_partition(valid_xy) for batch_index in xrange(valid_sets.cur_frame_num / batch_size): # loop over mini-batches valid_error.append(valid_fn(index=batch_index)) valid_sets.initialize_read() log('> epoch %d, lrate %f, validation error %f' % (lrate.epoch, lrate.get_rate(), numpy.mean(valid_error))) lrate.get_next_rate(current_error = 100 * numpy.mean(valid_error)) # output conv layer config for i in xrange(len(conv_layer_configs)): conv_layer_configs[i]['activation'] = activation_to_txt(conv_activation) with open(wdir + '/conv.config.' + str(i), 'wb') as fp: json.dump(conv_layer_configs[i], fp, indent=2, sort_keys = True) fp.flush() # output the conv part _cnn2file(cnn.layers[0:len(conv_layer_configs)], filename=conv_output_file) # output the full part total_layer_number = len(cnn.layers) _nnet2file(cnn.layers[len(conv_layer_configs):total_layer_number], filename=wdir + '/nnet.finetune.tmp') _nnet2kaldi(str(cnn.conv_output_dim) + ':' + full_nnet_spec, filein = wdir + '/nnet.finetune.tmp', fileout = full_output_file) end_time = time.clock() print >> sys.stderr, ('The code for file ' + os.path.split(__file__)[1] + ' ran for %.2fm' % ((end_time - start_time) / 60.))