在自定义数据集中运行模型(2类)测试阶段出错(MXNet framework)

2024-05-19 01:16:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我自己的数据集运行一个模型(该项目是为使用ImageNet进行培训/测试而实现的),有2个类。我已经进行了所有更改(在配置文件等中),但在培训完成(成功)后,开始测试时出现以下错误:

wrote gt roidb to ./data/cache/ImageNetVID_DET_val_gt_roidb.pkl
Traceback (most recent call last):
  File "experiments/dff_rfcn/dff_rfcn_end2end_train_test.py", line 20, in <module>
    test.main()
  File "experiments/dff_rfcn/../../dff_rfcn/test.py", line 53, in main
    args.vis, args.ignore_cache, args.shuffle, config.TEST.HAS_RPN, config.dataset.proposal, args.thresh, logger=logger, output_path=final_output_path)
  File "experiments/dff_rfcn/../../dff_rfcn/function/test_rcnn.py", line 68, in test_rcnn
    roidbs_seg_lens[gpu_id] += x['frame_seg_len']
KeyError: 'frame_seg_len'

我在运行之前清理了缓存文件。正如我在前面的主题中所读到的,这可能是缓存中以前的datasets.pkl文件的问题。是什么导致了这个错误?我还想提到的是,我更改了为神经网络提供信息的.txt文件名(如果这很重要的话),并且训练完成得很好。 这是我第一次在深度学习项目,所以请表现出一些理解。你知道吗


Tags: 项目inpytestgtcache错误line
1条回答
网友
1楼 · 发布于 2024-05-19 01:16:43

MXNet通常直接使用pickle以外的方法来序列化模型体系结构和训练的权重。你知道吗

使用glionapi,您可以使用^{}将模型的权重保存到文件(即块),然后使用^{}从文件加载权重。您可以通过保留用于定义模型的代码来“保存”模型体系结构。请参阅和示例here。你知道吗

使用模块API,您可以在每个历元结束时创建检查点,以保存符号(即模型体系结构)和参数(即模型权重)。见here。你知道吗

checkpoint = mx.callback.do_checkpoint(model_prefix)
mod = mx.mod.Module(symbol=net)
mod.fit(train_iter, num_epoch=5, epoch_end_callback=checkpoint)

然后可以加载给定检查点的模型(例如,本例中的42)

sym, arg_params, aux_params = mx.model.load_checkpoint(model_prefix, 42)
mod.set_params(arg_params, aux_params)

相关问题 更多 >

    热门问题