@todo Initialize properly
| 55 | |
| 56 | /// @todo Initialize properly |
| 57 | KFAC::KFAC(std::string name, |
| 58 | std::unique_ptr<TermCriteriaType> stop, |
| 59 | std::vector<double> damping_act_params, |
| 60 | std::vector<double> damping_err_params, |
| 61 | std::vector<double> damping_bn_act_params, |
| 62 | std::vector<double> damping_bn_err_params, |
| 63 | std::vector<bool> kfac_use_interval, |
| 64 | size_t damping_warmup_steps, |
| 65 | double kronecker_decay, |
| 66 | bool print_time, |
| 67 | bool print_matrix, |
| 68 | bool print_matrix_summary, |
| 69 | bool use_pi, |
| 70 | std::vector<size_t> update_intervals, |
| 71 | size_t update_interval_steps, |
| 72 | kfac::kfac_inverse_strategy inverse_strategy, |
| 73 | std::vector<std::string> disable_layers, |
| 74 | double learning_rate_factor, |
| 75 | double learning_rate_factor_gru, |
| 76 | size_t compute_interval, |
| 77 | bool distribute_precondition_compute, |
| 78 | bool use_eigen_decomposition, |
| 79 | bool enable_copy_errors, |
| 80 | bool enable_copy_activations) |
| 81 | |
| 82 | : TrainingAlgorithm{std::move(name)}, |
| 83 | m_stopping_criteria{std::move(stop)}, |
| 84 | m_damping_act_params{std::move(damping_act_params)}, |
| 85 | m_damping_err_params{std::move(damping_err_params)}, |
| 86 | m_damping_bn_act_params{std::move(damping_bn_act_params)}, |
| 87 | m_damping_bn_err_params{std::move(damping_bn_err_params)}, |
| 88 | m_damping_warmup_steps{std::move(damping_warmup_steps)}, |
| 89 | m_kronecker_decay{kronecker_decay}, |
| 90 | m_print_time{print_time}, |
| 91 | m_print_matrix{print_matrix}, |
| 92 | m_print_matrix_summary{print_matrix_summary}, |
| 93 | m_use_pi{use_pi}, |
| 94 | m_update_intervals{std::move(update_intervals)}, |
| 95 | m_update_interval_steps{update_interval_steps}, |
| 96 | m_inverse_strategy{inverse_strategy}, |
| 97 | m_disable_layers{std::move(disable_layers)}, |
| 98 | m_learning_rate_factor{learning_rate_factor}, |
| 99 | m_learning_rate_factor_gru{learning_rate_factor_gru}, |
| 100 | m_compute_interval{compute_interval}, |
| 101 | m_distribute_precondition_compute{distribute_precondition_compute}, |
| 102 | m_enable_copy_errors{enable_copy_errors}, |
| 103 | m_enable_copy_activations{enable_copy_activations}, |
| 104 | m_use_eigen_decomposition{use_eigen_decomposition}, |
| 105 | m_use_KFAC_epoch{std::move(kfac_use_interval)} |
| 106 | {} |
| 107 | |
| 108 | std::string KFAC::get_type() const { return "KFAC"; } |
| 109 |
no outgoing calls