AdamW constructor

AdamW(
  1. List<Tensor> parameters, {
  2. required double learningRate,
  3. double beta1 = 0.9,
  4. double beta2 = 0.999,
  5. double epsilon = 1e-8,
  6. double weightDecay = 0.01,
})

Implementation

AdamW(
    List<Tensor<dynamic>> parameters, {
      required double learningRate,
      this.beta1 = 0.9,
      this.beta2 = 0.999,
      this.epsilon = 1e-8,
      this.weightDecay = 0.01,
    }) : super(parameters, learningRate: learningRate) {
  _m = {};
  _v = {};
  for (int p = 0; p < parameters.length; p = p + 1) {
    Tensor<dynamic> param = parameters[p];
    int size = param.data.length;

    List<double> mList = [];
    List<double> vList = [];
    for (int i = 0; i < size; i = i + 1) {
      mList.add(0.0);
      vList.add(0.0);
    }

    _m[param.id] = mList;
    _v[param.id] = vList;
  }
}