RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package zephyr.plugin.core.api.internal.monitoring.fileloggers; 00002 00003 import java.io.IOException; 00004 import java.util.ArrayList; 00005 00006 00007 public class AverageLoggerRow extends LoggerRow { 00008 private final int stepsToAvg; 00009 private final ArrayList<Double> arrayList; 00010 00011 public AverageLoggerRow(String filepath, int stepsToAvg) throws IOException { 00012 super(filepath); 00013 this.stepsToAvg = stepsToAvg; 00014 arrayList = new ArrayList<Double>(stepsToAvg); 00015 } 00016 00017 @Override 00018 public void writeRow(double... row) { 00019 assert row.length == 2; 00020 int time = (int) row[0]; 00021 double errorSquare = row[1]; 00022 arrayList.add(errorSquare); 00023 if (time % stepsToAvg == stepsToAvg - 1) { 00024 double avg = 0.0; 00025 for (Double val : arrayList) 00026 avg += val; 00027 avg = avg / stepsToAvg; 00028 super.writeRow(time - stepsToAvg / 2, avg); 00029 arrayList.clear(); 00030 arrayList.ensureCapacity(stepsToAvg); 00031 } 00032 } 00033 }