1

I am trying to use gluoncv.auto.tasks.object_detection in order to do a hyper parameter search on multiple object detection models, but I am facing a problem when using the following config:

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)

It runs ok with num_trials=1, but whenever I set num_trials above 1, I get:

~/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, scheduler_options):
     32     if isinstance(scheduler, str):
---> 33         scheduler_cls = schedulers[scheduler.lower()]
     34     else:
     35         assert callable(scheduler)

KeyError: 'random'

But the source code on gluoncv.auto.tasks.object_detection explicitly sets the scheduler to random or to search_strategy value.

I have tried to use other scheduler, as defined in 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,
}

But when I try all other scheduler names in the search_strategy param, I get:

AssertionError: searcher 'fifo' is not supported

I could not figure out how to work around this error, if someone has any experience with gluoncv auto.

czr
  • 658
  • 3
  • 13

0 Answers0