Ejemplo n.º 1
0
// ====================================================================================
// Usage: caffe_('solver_snapshot', hSolver, save_file)
//20160215find
static void solver_snapshot(MEX_ARGS) {
	mxCHECK(nrhs == 2 && mxIsStruct(prhs[0]) && mxIsChar(prhs[1]),
		"Usage: caffe_('solver_snapshot', hSolver, save_file)");
	Solver<float>* solver = handle_to_ptr<Solver<float> >(prhs[0]);
	char* snapshot_file = mxArrayToString(prhs[1]);
	
	if (snapshot_file[0] == '\0') {
		solver->Snapshot();
	}
	else {
		const string *prefix = &(solver->param().snapshot_prefix());
		string ori_prefix = *prefix;
		*(string*)prefix = "@" + (string)snapshot_file;
		solver->Snapshot();
		*(string*)prefix = ori_prefix;
		mxFree(snapshot_file);
	}
}