def learn(self, BATCH: Data): BATCH = self._preprocess_BATCH(BATCH) # [T, B, *] for _ in range(self._epochs): for _BATCH in BATCH.sample(self._chunk_length, self.batch_size, repeat=self._sample_allow_repeat): _BATCH = self._before_train(_BATCH) summaries = self._train(_BATCH) self.summaries.update(summaries) self._after_train()
def learn(self, BATCH: Data): BATCH = self._preprocess_BATCH(BATCH) # [T, B, *] for _ in range(self._epochs): kls = [] for _BATCH in BATCH.sample(self._chunk_length, self.batch_size, repeat=self._sample_allow_repeat): _BATCH = self._before_train(_BATCH) summaries, kl = self._train(_BATCH) kls.append(kl) self.summaries.update(summaries) self._after_train() if self._use_early_stop and sum(kls) / len(kls) > self._kl_stop: break