void Done() { printInfile(); tokenCounter=0; NextState=State_Start; memset(&token[0], 0, sizeof(token)); }
void QL::learnWts() { resetInputToCNN(); for(int i = 0; i < miniBatchSize; ++i) { setInputToCNN(dExp[miniBatch[i]].fiJN, i); } if(numTimeLearnt < 1) { std::ofstream myF("inputToCNN.txt"); printInfile(cnnInputSize, inputToCNN, myF); myF.close(); } float *qVals = caff2->forwardNGetQVal(inputToCNN); TargetLayerInputData targ; std::fill(targ.begin(), targ.end(), 0.0f); FilterLayerInputData filterInp; std::fill(filterInp.begin(), filterInp.end(), 0.0f); prepareTarget(targ, qVals); for(int i = 0; i < miniBatchSize; ++i) { filterInp[i*numAction + dExp[miniBatch[i]].act] = 1; } resetInputToCNN(); for(int i = 0; i < miniBatchSize; ++i) { setInputToCNN(dExp[miniBatch[i]].fiJ, i); } int maxLIter = info.numLearnSteps; caff->learn(inputToCNN, targ, filterInp, maxLIter); numTimeLearnt++; if(numTimeLearnt - targetUpdate >= info.targetUpdateFreq) { targetUpdate = numTimeLearnt; caff2 = caff; } }