| 240 | */ |
| 241 | template<class Float, OptimizerType optimizer_type> |
| 242 | __host__ __device__ decltype(&Optimizer::momentum_update<Float>) get_update_function_1_moment() { |
| 243 | switch (optimizer_type) { |
| 244 | case kMomentum: |
| 245 | return &Optimizer::momentum_update<Float>; |
| 246 | case kAdaGrad: |
| 247 | return &Optimizer::adagrad_update<Float>; |
| 248 | case kRMSprop: |
| 249 | return &Optimizer::rmsprop_update<Float>; |
| 250 | default: |
| 251 | return nullptr; |
| 252 | } |
| 253 | } |
| 254 | |
| 255 | /** |
| 256 | * @brief Compile-time binding of 2-moment optimizers |
nothing calls this directly
no outgoing calls
no test coverage detected