def _train_cross_valid(self, _skiptrain=False): df = DataFeeder(*(self.traindata + [self.traingold])) splitter = SplitIdxIterator(df.size, split=self.validsplits, random=self.validrandom, folds=self.validsplits) err = [] verr = [] c = 0 for splitidxs in splitter: trainf = self.buildtrainfun(self.model) validf = self.getvalidfun(self.model) tf, vf = df.isplit(splitidxs, df_randoms=(True, False)) tf.numbats(self.numbats) vf.batsize = tf.batsize serr, sverr = self.trainloop(trainf=self.getbatchloop(trainf, tf), validf=self.getbatchloop(validf, vf), _skiptrain=_skiptrain) err.append(serr) verr.append(sverr) self.resetmodel(self.model) err = np.asarray(err) avgerr = np.mean(err, axis=0) verr = np.asarray(verr) avgverr = np.mean(verr, axis=0) self.tt.tock("done") return avgerr, avgverr, err, verr
def _train_cross_valid(self): df = DataFeeder(*(self.traindata + [self.traingold])) splitter = SplitIdxIterator(df.size, split=self.validsplits, random=self.validrandom, folds=self.validsplits) err = [] verr = [] c = 0 for splitidxs in splitter: trainf = self.buildtrainfun(self.model) validf = self.buildvalidfun(self.model) tf, vf = df.isplit(splitidxs) serr, sverr = self.trainloop( trainf=self.getbatchloop(trainf, tf.numbats(self.numbats)), validf=self.getbatchloop(validf, vf)) err.append(serr) verr.append(sverr) self.resetmodel(self.model) err = np.asarray(err) avgerr = np.mean(err, axis=0) verr = np.asarray(verr) avgverr = np.mean(verr, axis=0) self.tt.tock("done") return avgerr, avgverr, err, verr