请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

之前训练的分类模型不知如何调用

老师您好,我在分类模型数据增强那一节跑了分类模型,想在讲解finetune的这一节里调用训练好的模型数据时,发现找不到之前训练的分类模型。在data-unversioned文件夹中的models文件夹中(我的文件夹里面是下面截图),只有分割模型的训练state。
我想是不是分类模型里面我存储模型结果没设置好,请问老师我该怎么修改呢?
这个是我分类模型的结果数据,日志文件没有显示结果存储到哪个文件夹
图片描述

正在回答 回答被采纳积分+3

4回答

读书林 2025-05-15 11:12:51
# code2.training.py  422 行添加
score = metrics_dict['pr/recall']
return score
# code2.training.py  457 行添加 saveModel方法
def saveModel(self, type_str, epoch_ndx, isBest=False):
        file_path = os.path.join(
            'data-unversioned',
            'part',
            'models',
            self.cli_args.tb_prefix,
            '{}_{}_{}.{}.state'.format(
                type_str,
                self.time_str,
                self.cli_args.comment,
                self.totalTrainingSamples_count,
            )
        )

        os.makedirs(os.path.dirname(file_path), mode=0o755, exist_ok=True)

        model = self.model
        if isinstance(model, torch.nn.DataParallel):
            model = model.module

        state = {
            'sys_argv': sys.argv,
            'time': str(datetime.datetime.now()),
            'model_state': model.state_dict(),
            'model_name': type(model).__name__,
            'optimizer_state' : self.optimizer.state_dict(),
            'optimizer_name': type(self.optimizer).__name__,
            'epoch': epoch_ndx,
            'totalTrainingSamples_count': self.totalTrainingSamples_count,
        }
        torch.save(state, file_path)

        log.info("Saved model params to {}".format(file_path))

        if isBest:
            best_path = os.path.join(
                'data-unversioned', 'part', 'models',
                self.cli_args.tb_prefix,
                f'{type_str}_{self.time_str}_{self.cli_args.comment}.best.state')
            shutil.copyfile(file_path, best_path)

            log.info("Saved model params to {}".format(best_path))

        with open(file_path, 'rb') as f:
            log.info("SHA1: " + hashlib.sha1(f.read()).hexdigest())

# code2.training.py 212 行添加 

 if epoch_ndx == 1 or epoch_ndx % 5 == 0:
                # if validation is wanted
                valMetrics_t = self.doValidation(epoch_ndx, val_dl)
                score = self.logMetrics(epoch_ndx, 'val', valMetrics_t)
                best_score = max(score, best_score)

                self.saveModel('cls', epoch_ndx, score == best_score)


2 回复 有任何疑惑可以回复我~
荒川123 2025-05-16 17:09:50

这个问题解决了吗

楼下同学的方法应该可以

0 回复 有任何疑惑可以回复我~
  • 提问者 轨迹Orbit #1
    谢谢老师,解决了😊
    回复 有任何疑惑可以回复我~ 2025-05-16 17:56:14
读书林 2025-05-06 16:57:46

https://img1.sycdn.imooc.com/szimg/16ddc5680919cf0006050474.jpg我的也是这样

0 回复 有任何疑惑可以回复我~
  • 这个要在code2 training中 加保存逻辑代码
    回复 有任何疑惑可以回复我~ 2025-05-15 11:04:41
  • 提问者 轨迹Orbit #2
    谢谢!终于解决了!之前自己尝试的保存逻辑代码存在一点问题
    回复 有任何疑惑可以回复我~ 2025-05-16 17:55:05
荒川123 2025-05-05 09:28:34

看一下您分类模型设置的存储位置是哪里呢?看起来训练已完成应该有存储呀,是不是不在当前位置

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号