std::pair<layer_data_list_smart_ptr, std::string> network_trainer_sgd::prepare_learning_rates(unsigned int epoch) { float learning_rate = get_global_learning_rate(static_cast<unsigned int>(epoch)); layer_data_list_smart_ptr lr(new layer_data_list(*schema)); lr->fill(learning_rate); std::string comment = (boost::format("LR %|1$.5e|") % learning_rate).str(); return std::make_pair(lr, comment); }
std::pair<std::vector<std::vector<float> >, std::string> network_trainer_sgd::prepare_learning_rates( unsigned int epoch, network_data_smart_ptr data) { float learning_rate = get_global_learning_rate(static_cast<unsigned int>(epoch)); std::vector<std::vector<float> > res; for(layer_data_list::const_iterator it = data->data_list.begin(); it != data->data_list.end(); ++it) res.push_back(std::vector<float>((*it)->size(), learning_rate)); std::string comment = (boost::format("LR %|1$.5e|") % learning_rate).str(); return std::make_pair(res, comment); }
std::pair<std::map<std::string, std::vector<float> >, std::string> network_trainer_sgd::prepare_learning_rates( unsigned int epoch, network_data::const_ptr data) { float learning_rate = get_global_learning_rate(static_cast<unsigned int>(epoch)); std::map<std::string, std::vector<float> > res; std::vector<std::string> layer_names = data->data_list.get_data_layer_name_list(); for(std::vector<std::string>::const_iterator it = layer_names.begin(); it != layer_names.end(); ++it) { layer_data::ptr dt = data->data_list.get(*it); res.insert(std::make_pair(*it, std::vector<float>(dt->size(), learning_rate))); } std::string comment = (boost::format("LR %|1$.5e|") % learning_rate).str(); return std::make_pair(res, comment); }