models.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:senti 作者: stevenxxiu 项目源码 文件源码
def fit(
        self, docs, y, max_epochs, epoch_size=None, val_docs=None, val_y=None, update_params_iter=itertools.repeat([]),
        save_best=True
    ):
        has_val = val_docs is not None
        with log_time('training...', 'training took {:.0f}s'):
            params = get_all_params(self.network)
            best_perf, best_params = None, None
            epoch_iter = EpochIterator(
                self.gen_batches, (docs, y), (epoch_size + self.batch_size - 1) // self.batch_size
                if epoch_size else None
            )
            for i, batches, update_params in zip(range(max_epochs), epoch_iter, update_params_iter):
                train_res = [self._train(*batch, *update_params) for batch in batches]
                val_res = np.concatenate(
                    [self._test(*batch[:-1]) for batch in self.gen_batches(val_docs)], axis=0
                )[:len(val_y)] if has_val else None
                perf = self.perf(i, train_res, val_y, val_res)
                if (has_val and save_best) and (best_perf is None or perf >= best_perf):
                    best_perf = perf
                    best_params = {param: param.get_value() for param in params}
            if has_val and save_best:
                for param, value in best_params.items():
                    param.set_value(value)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号