public void execute() { multiCon.inputMaps = inputMap; multiCon.caculate(); List <float[]> fulInput = AgentClass.MapsToList(multiCon.poolingMaps); fullyNet.InputArray = fulInput; fullyNet.caculate(); OutDataArray = fullyNet.outData; }
public void update() { //计算ADAM Adam.B1_pow *= AgentClass.B1; Adam.B2_pow *= AgentClass.B2; // List <float[]> lossValue = loss(standardOutData, OutDataArray); List <float[]> outDataArrayTemp = new List <float[]>(numberOfFullyNetworkArray[numberOfFullyNetworkArray.Length - 1]); for (int i = 0; i < numberOfFullyNetworkArray[numberOfFullyNetworkArray.Length - 1]; i++) { float[] arrayTemp = new float[AgentClass.Mini_batchsize]; for (int j = 0; j < AgentClass.Mini_batchsize; j++) { arrayTemp[j] = lossValue[j][i]; } outDataArrayTemp.Add(arrayTemp); } //ReduceMemory.SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle.ToInt32(), -1, -1); fullyNet.lossValue = outDataArrayTemp; fullyNet.updateWi(); multiCon.poolingSensitives = AgentClass.ListToMaps(fullyNet.OutSensitive); multiCon.update(); }