void Done()
{
		printInfile();
		tokenCounter=0;
		NextState=State_Start;
		memset(&token[0], 0, sizeof(token));
}
Example #2
0
File: qlv2.cpp Project: chagge/AI
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;
	}
}