MCPcopy Create free account
hub / github.com/LBANN/lbann / get_objective_function

Function get_objective_function

src/callbacks/progress_bar.cpp:96–134  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

94}
95
96static inline std::string get_objective_function(lbann::model* m)
97{
98 std::stringstream stream;
99 stream << "Objective: ";
100
101 auto terms = m->get_objective_function()->get_terms();
102 bool first = true;
103 for (const auto& term : terms) {
104 // Only consider layer terms
105 auto lterm = dynamic_cast<lbann::layer_term*>(term);
106 if (!lterm)
107 continue;
108 lbann::Layer* layer = &lterm->get_layer();
109
110 // Try as an EvalType evaluation layer
111 lbann::EvalType objective = lbann::EvalType(-999.0);
112 auto eval_layer =
113 dynamic_cast<lbann::abstract_evaluation_layer<lbann::EvalType>*>(layer);
114 // If not working, try as a DataType layer
115 if (!eval_layer) {
116 auto eval_layer_data =
117 dynamic_cast<lbann::abstract_evaluation_layer<lbann::DataType>*>(layer);
118 if (!eval_layer_data)
119 continue;
120 objective = static_cast<lbann::EvalType>(eval_layer_data->get_value());
121 }
122 else {
123 objective = eval_layer->get_value();
124 }
125
126 if (!first)
127 stream << ", ";
128 stream << std::fixed << std::setprecision(4) << objective;
129 first = false;
130 }
131
132 stream << " ";
133 return stream.str();
134}
135
136namespace lbann {
137namespace callback {

Callers 2

on_forward_prop_beginMethod · 0.85

Calls 4

get_termsMethod · 0.80
get_layerMethod · 0.80
get_valueMethod · 0.45

Tested by

no test coverage detected