void network_trainer_sgd::train_step( supervised_data_reader& reader, training_task_state& task) { boost::chrono::steady_clock::time_point start = boost::chrono::high_resolution_clock::now(); std::pair<std::vector<std::vector<float> >, std::string> lr_and_comment = prepare_learning_rates(task.get_current_epoch(), task.data); task.comments.push_back(lr_and_comment.second); std::pair<testing_result_smart_ptr, training_stat_smart_ptr> train_result = updater->update( reader, lr_and_comment.first, task.data, batch_size, weight_decay, momentum, layer_to_dropout_rate_map); boost::chrono::duration<float> sec = (boost::chrono::high_resolution_clock::now() - start); float flops = updater->get_flops_for_single_entry(); train_result.first->time_to_complete_seconds = sec.count(); train_result.first->flops = static_cast<float>(train_result.first->get_entry_count()) * flops; task.history.push_back(train_result); }
void network_trainer_sgd::train_step( structured_data_bunch_reader& reader, training_task_state& task) { boost::chrono::steady_clock::time_point start = boost::chrono::high_resolution_clock::now(); std::pair<std::map<std::string, std::vector<float> >, std::string> lr_and_comment = prepare_learning_rates(task.get_current_epoch(), task.data); task.comments.push_back(lr_and_comment.second); neuron_value_set_data_bunch_writer writer; backward_propagation::stat training_stat = backprop->run( reader, writer, *task.data, task.momentum_data, lr_and_comment.first, batch_size, weight_decay, momentum); std::map<std::string, std::pair<layer_configuration_specific, nnforge_shared_ptr<std::vector<float> > > > output_data_average_results; for(std::map<std::string, std::pair<layer_configuration_specific, neuron_value_set::ptr> >::const_iterator it = writer.layer_name_to_config_and_value_set_map.begin(); it != writer.layer_name_to_config_and_value_set_map.end(); ++it) output_data_average_results.insert(std::make_pair(it->first, std::make_pair(it->second.first, it->second.second->get_average()))); task.history.push_back(std::make_pair(training_stat, output_data_average_results)); }