Поезд SqueezeNet модель с использованием набора данных MNIST Pytorch

1

Я хочу тренировать модель SqueezeNet 1.1 с использованием набора данных MNIST вместо набора данных ImageNet.
Могу ли я иметь ту же модель, что и torchvision.models.squeezenet?
Спасибо!

Теги:
neural-network
pytorch
mnist
torchvision

2 ответа

2
Лучший ответ

TorchVision предоставляет только предварительно обработанную модель данных ImageNet для архитектуры SqueezeNet. Тем не менее, вы можете обучить свою собственную модель с использованием набора данных MNIST, взяв только модель (но не предварительно подготовленную) с torchvision.models.

In [10]: import torchvision as tv

# get the model architecture only; ignore 'pretrained' flag
In [11]: squeezenet11 = tv.models.squeezenet1_1()

In [12]: squeezenet11.training   
Out[12]: True

Теперь вы можете использовать эту архитектуру для обучения модели по данным MNIST, что не должно занять слишком много времени.


Одна из модификаций, которые следует учитывать, - это обновить количество классов, для которых 10 для MNIST. В частности, 1000 должно быть изменено на 10, а ядро и шаг соответственно.

  (classifier): Sequential(
    (0): Dropout(p=0.5)
    (1): Conv2d(512, 1000, kernel_size=(1, 1), stride=(1, 1))
    (2): ReLU(inplace)
    (3): AvgPool2d(kernel_size=13, stride=1, padding=0)
  )

Здесь соответствующее объяснение: finetuning_torchvision_models-squeezenet

  • 0
    Мне нужно изменить свойство num_classes?
  • 0
    любые другие изменения в первом конфиге, bro? -self.features = nn.Sequential (nn.Conv2d (3, 64, kernel_size = 3, stepde = 2),
Показать ещё 1 комментарий
0

Инициализация предварительно подготовленных весов возможна, но вы получите проблемы с шагами и размерами ядра, поскольку изображения MNIST составляют 28X28 пикселей. Скорее всего, это сокращение приведет к картам функций (batch_sizex1x1xchannel) до того, как сеть будет на своем слое infernece, что приведет к ошибке.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню