Как точно настроить только FC1 и FC2 в VGG-19 PyTorchPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как точно настроить только FC1 и FC2 в VGG-19 PyTorch

Сообщение Anonymous »


Мне нужно точно настроить предварительно обученный VGG-19 с помощью pytorch. У меня есть следующие конкретные задачи:
[*]Точная настройка весов всех уровней сети VGG-19. [*]Точная настройка весов только двух последних полносвязных слоев (FC1 и FC2). в сети ВГГ-19. И это единственная информация, которую мне предоставили. Структура VGG-19 следующая:
VGG( (функции): Последовательный( (0): Conv2d(3, 64, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (1): ReLU(вместо=Истина) (2): Conv2d(64, 64, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (3): ReLU(вместо=Истина) (4): MaxPool2d (kernel_size=2, шаг=2, заполнение=0, расширение=1, ceil_mode=False) (5): Conv2d(64, 128, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (6): ReLU (вместо = Истина) (7): Conv2d(128, 128, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (8): ReLU(вместо=Истина) (9): MaxPool2d (kernel_size=2, шаг=2, заполнение=0, расширение=1, ceil_mode=False) (10): Conv2d(128, 256, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (11): ReLU(вместо=Истина) (12): Conv2d(256, 256, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (13): ReLU(вместо=Истина) (14): Conv2d(256, 256, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (15): ReLU(вместо=Истина) (16): Conv2d(256, 256, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (17): ReLU(вместо=Истина) (18): MaxPool2d (kernel_size=2, шаг=2, заполнение=0, расширение=1, ceil_mode=False) (19): Conv2d(256, 512, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (20): ReLU(вместо=Истина) (21): Conv2d(512, 512, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (22): ReLU(вместо=Истина) (23): Conv2d(512, 512, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (24): ReLU(вместо=Истина) (25): Conv2d(512, 512, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (26): ReLU(вместо=Истина) (27): MaxPool2d (kernel_size=2, шаг=2, заполнение=0, расширение=1, ceil_mode=False) (28): Conv2d(512, 512, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (29): ReLU(вместо=Истина) (30): Conv2d(512, 512, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (31): ReLU(вместо=Истина) (32): Conv2d(512, 512, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (33): ReLU(вместо=Истина) (34): Conv2d(512, 512, kernel_size=(3, 3), шаг=(1, 1), заполнение=(1, 1)) (35): ReLU(вместо=Истина) (36): MaxPool2d (kernel_size=2, шаг=2, заполнение=0, расширение=1, ceil_mode=False) ) (avgpool): AdaptiveAvgPool2d(output_size=(7, 7)) (классификатор): Последовательный( (0): Линейный (in_features=25088, out_features=4096, смещение=True) (1): ReLU(вместо=Истина) (2): Отсев (p=0,5, на месте=False) (3): Линейный (in_features=4096, out_features=4096, смещение=True) (4): ReLU(вместо=Истина) (5): Отсев (p=0,5, на месте=False) (6): Линейный (in_features=4096, out_features=1000, смещение=True) ) ) Я попробовал выполнить первое задание вот так и считаю, что это правильно:

model = models.vgg19(pretrained=True) для параметра в model.parameters(): param.requires_grad = Истина model.classifier[6] = nn.Linear(4096, len(class_to_idx)) Но я не смог решить вторую задачу, я попробовал это и не уверен:

model2 = models.vgg19(pretrained=True) для параметра в model2.parameters(): param.requires_grad = Ложь # Установите для require_grad значение True для FC1 и FC2 для параметра в model2.classifier[0].parameters(): param.requires_grad = Истина для параметра в model2.classifier[3].parameters(): param.requires_grad = Истина # Измените последние полностью связанные слои на количество классов в вашем наборе данных. model2.classifier[6] = nn.Linear(4096, len(class_to_idx)) Как сделать вторую часть? Должен ли я сохранить model2.classifier[6] или определить новую последовательную структуру?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как интегрировать модель Vgg, созданную в Keras, в приложение C? У меня есть файл (.h5)
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Не удалось повысить точность модели Tiny VGG CNN.
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Не удалось повысить точность модели Tiny VGG CNN.
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Не удалось повысить точность модели Tiny VGG CNN [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Могу ли я точно настроить модель преобразователя предложений, используя нагрудник-трансформер в Python?
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»