public model(dataSet X, featureGenerator fGen) { _nTag = X.NTag; _nHiddenState = Global.nHiddenStatePerTag * _nTag; //default value is 0 if (Global.random == 0) { _w = new float[fGen.NCompleteFeature]; } else if (Global.random == 1) { List <float> randList = randomDoubleTool.getRandomList_float(fGen.NCompleteFeature); _w = randList.ToArray(); if (Global.tuneWeightInit) { if (Global.tmpW == null) { Global.tmpW = new float[_w.Length]; } _w.CopyTo(Global.tmpW, 0); } } else if (Global.random == 2) { _w = new float[fGen.NCompleteFeature]; Global.optimW.CopyTo(_w, 0); } else { throw new Exception("error"); } }
//for multi-task public toolbox(dataSet X, List <dataSet> XList, bool train = true) { if (train)//to train { _X = X; _XList = XList; _fGene = new featureGenerator(X); _model = null; _modelList = new List <model>(); for (int i = 0; i < Global.nTask; i++) { model m = new model(XList[i], _fGene); _modelList.Add(m); } _inf = new inference(this); _grad = new gradient(this); initOptimizer(); } else//to test { _X = X; _XList = XList; _model = null; _modelList = new List <model>(); for (int i = 0; i < Global.nTask; i++) { model m = new model(Global.modelDir + i.ToString() + Global.fModel); _modelList.Add(m); } _fGene = new featureGenerator(X); _inf = new inference(this); _grad = new gradient(this); } }
public toolbox(dataSet X, bool train = true) { if (train)//for training { _X = X; _fGene = new featureGenerator(X); _model = new model(X, _fGene); _inf = new inference(this); initOptimizer(); } else//for test { _X = X; _model = new model(Global.fModel); _fGene = new featureGenerator(X); _inf = new inference(this); } }
public model(dataSet X, featureGenerator fGen) { _nTag = X.NTag; //default value is 0 if (Global.random == 0) { _w = new float[fGen.NCompleteFeature]; } else if (Global.random == 1) { List <float> randList = randomDoubleTool.getRandomList_float(fGen.NCompleteFeature); _w = randList.ToArray(); } else { throw new Exception("error"); } }
//for train public model(dataSet X, featureGenerator fGen) { _nTag = X.NTag; //default value is 0 if (Global.random == 0) { double[] dAry = new double[fGen.NCompleteFeature]; List <double> w = new List <double>(dAry); W = w; } else if (Global.random == 1) { List <double> randList = randomDoubleTool.getRandomList(fGen.NCompleteFeature); W = randList; } else { throw new Exception("error"); } }
//for single-task public toolbox(dataSet X, bool train = true) { if (train)//to train { _XList = null; _modelList = null; _X = X; _fGene = new featureGenerator(X); _model = new model(X, _fGene); _inf = new inference(this); _grad = new gradient(this); initOptimizer(); } else//to test { _XList = null; _modelList = null; _X = X; _model = new model(Global.modelDir + Global.fModel); _fGene = new featureGenerator(X); _inf = new inference(this); _grad = new gradient(this); } }
public inference(toolbox tb) { _optim = tb.Optim; _fGene = tb.FGene; }
public inference(toolbox tb) { _optim = tb.Optim; _fGene = tb.FGene; _grad = tb.Grad; }
public gradient(toolbox tb) { _optim = tb.Optim; _inf = tb.Inf; _fGene = tb.FGene; }