def test_time_out_image_classification(): time_limit = 30 from gluoncv.auto.tasks import ImageClassification task = ImageClassification({'num_trials': 1, 'epochs': 50}) tic = time.time() classifier = task.fit(IMAGE_CLASS_DATASET, time_limit=time_limit) # check time_limit with a little bit overhead assert (time.time() - tic) < time_limit + 180
def test_torch_image_classification_custom_net(): from gluoncv.auto.tasks import ImageClassification from timm import create_model import torch.nn as nn net = create_model('resnet18') net.fc = nn.Linear(512, 4) task = ImageClassification({'num_trials': 1, 'epochs': 1, 'custom_net': net, 'batch_size': 8}) classifier = task.fit(IMAGE_CLASS_DATASET) assert task.fit_summary().get('valid_acc', 0) > 0 test_result = classifier.predict(IMAGE_CLASS_TEST)
def test_image_classification(): from gluoncv.auto.tasks import ImageClassification task = ImageClassification({ 'model': 'resnet18_v1', 'num_trials': 1, 'epochs': 1, 'batch_size': 8 }) classifier = task.fit(IMAGE_CLASS_DATASET) assert task.fit_summary().get('valid_acc', 0) > 0 test_result = classifier.predict(IMAGE_CLASS_TEST)
def test_image_classification_custom_net(): from gluoncv.auto.tasks import ImageClassification from gluoncv.model_zoo import get_model net = get_model('resnet18_v1') task = ImageClassification({ 'num_trials': 1, 'epochs': 1, 'custom_net': net }) classifier = task.fit(IMAGE_CLASS_DATASET) assert task.fit_summary().get('valid_acc', 0) > 0 test_result = classifier.predict(IMAGE_CLASS_TEST)
def test_image_classification(): from gluoncv.auto.tasks import ImageClassification task = ImageClassification({'num_trials': 1}) classifier = task.fit(IMAGE_CLASS_DATASET) assert task.fit_summary.get('valid_acc', 0) > 0 test_result = classifier.predict(IMAGE_CLASS_TEST)
ag.Int(4, 7), # [16, 32, 64, 128] 'momentum': ag.Real(0.85, 0.95), 'wd': ag.Real(1e-6, 1e-2, log=True), 'epochs': 15, 'num_trials': args.num_trials, 'search_strategy': 'bayesopt' } # specify learning task task = ImageClassification(config) # specify dataset dataset = Dataset.get(args.dataset) train_data, valid_data = dataset.split(0.8) # fit auto estimator classifier = task.fit(train_data, valid_data) # evaluate auto estimator top1, top5 = classifier.evaluate(valid_data) logging.info('evaluation: top1={}, top5={}'.format(top1, top5)) # save and load auto estimator classifier.save('classifier.pkl') classifier = ImageClassification.load('classifier.pkl')