如何解决Gluoncv 自动任务 Object_detection 不适用于 num_trials>1
我正在尝试使用 gluoncv.auto.tasks.object_detection
对多个对象检测模型进行超参数搜索,但在使用以下配置时遇到问题:
from gluoncv.auto.tasks.object_detection import ObjectDetection
import autogluon.core as ag
train = ObjectDetection.Dataset.from_voc(
'https://autogluon.s3.amazonaws.com/datasets/tiny_motorbike.zip')
train,val,test = train.random_split(val_size=0.1,test_size=0.1)
time_limits = 60 * 60 # 1hr
search_args = {'lr': ag.Categorical(1e-3,1e-2),'num_trials': 4,'transfer': ag.Categorical(
'center_net_resnet50_v1b_coco','ssd_512_resnet50_v1_coco','faster_rcnn_resnet50_v1b_coco','yolo3_darknet53_coco'
),'epochs': 10,'num_workers': 16,'batch_size': 4,'ngpus_per_trial': 1,'search_strategy': 'random','time_limits': time_limits}
task = ObjectDetection(search_args)
detector = task.fit(train,val)
它与 num_trials=1
一起运行正常,但是每当我将 num_trials
设置为 1 以上时,我得到:
~/Programs/miniconda3/envs/mxnet-py3.8/lib/python3.8/site-packages/autogluon/core/task/base/base_task.py in create_scheduler(train_fn,scheduler,scheduler_options)
31 def create_scheduler(train_fn,scheduler_options):
32 if isinstance(scheduler,str):
---> 33 scheduler_cls = schedulers[scheduler.lower()]
34 else:
35 assert callable(scheduler)
KeyError: 'random'
但是 gluoncv.auto.tasks.object_detection
上的源代码将调度程序显式设置为 random
或 search_strategy
值。
我尝试使用其他调度程序,如 miniconda3/envs/mxnet-py3.8/lib/python3.8/site-packages/autogluon/core/task/base/base_task.py
schedulers = {
'local': LocalSequentialScheduler,'fifo': FIFOScheduler,'rl': RLScheduler,'hyperband_stopping': HyperbandScheduler,'hyperband_promotion': HyperbandScheduler,}
但是当我在 search_strategy
参数中尝试所有其他调度程序名称时,我得到:
AssertionError: searcher 'fifo' is not supported
如果有人对 gluoncv auto 有任何经验,我不知道如何解决这个错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。