Formation of the neural network architecture of the model and downloading its weights to obtain deep features (video modality)


  • _b5.video_model_deep_fe_ - Нейросетевая модель nn.Module для получения нейросетевых признаков

Import required packages

[2]:
from oceanai.modules.lab.build import Run

Build

[3]:
_b5 = Run(
    lang = 'en', # Inference language
    color_simple = '#333', # Plain text color (hexadecimal code)
    color_info = '#1776D2', # The color of the text containing the information (hexadecimal code)
    color_err = '#FF0000', # Error text color (hexadecimal code)
    color_true = '#008001', # Text color containing positive information (hexadecimal code)
    bold_text = True, # Bold text
    num_to_df_display = 30, # Number of rows to display in tables
    text_runtime = 'Runtime', # Runtime text
    metadata = True # Displaying information about library
)

[2024-10-08 16:26:05] OCEANAI - персональные качества личности человека:    Авторы:        Рюмина Елена [ryumina_ev@mail.ru]        Рюмин Дмитрий [dl_03.03.1991@mail.ru]        Карпов Алексей [karpov@iias.spb.su]    Сопровождающие:        Рюмина Елена [ryumina_ev@mail.ru]        Рюмин Дмитрий [dl_03.03.1991@mail.ru]    Версия: 1.0.0a40    Лицензия: BSD License

Formation of the neural network architecture of the model (FI V2)

[4]:
res_load_video_model_deep_fe = _b5.load_video_model_deep_fe(
    show_summary = False, # Displaying the formed neural network architecture of the model
    out = True, # Display
    runtime = True, # Runtime count
    run = True # Run blocking
)

[2024-10-08 16:26:05] Формирование нейросетевой архитектуры для получения нейросетевых признаков (видео модальность) …

— Время выполнения: 0.101 сек. —

Downloading the weights of the neural network model

[5]:
# Настройки ядра
_b5.path_to_save_ = './models' # Директория для сохранения файла
_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг

url = _b5.weights_for_big5_['video']['fi']['fe']['googledisk']

res_load_video_model_weights_deep_fe = _b5.load_video_model_weights_deep_fe(
    url = url, # Полный путь к файлу с весами нейросетевой модели
    force_reload = True, # Принудительная загрузка файла с весами нейросетевой модели из сети
    out = True, # Отображение
    runtime = True, # Подсчет времени выполнения
    run = True # Блокировка выполнения
)

[2024-10-08 16:26:06] Загрузка весов нейросетевой модели для получения нейросетевых признаков (видео модальность) …

[2024-10-08 16:26:09] Загрузка файла “weights_2022-11-01_12-27-07.pth” 100.0% …

— Время выполнения: 3.537 сек. —

Displaying the formed neural network architecture of the model

[6]:
_b5.video_model_deep_fe_
[6]:
ResNet(
  (conv_layer_s2_same): Conv2dSame(3, 64, kernel_size=(7, 7), stride=(2, 2), bias=False)
  (batch_norm1): BatchNorm2d(64, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
  (relu): ReLU()
  (max_pool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  (layer1): Sequential(
    (0): Bottleneck(
      (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm1): BatchNorm2d(64, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(64, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (i_downsample): Sequential(
        (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      )
      (relu): ReLU()
    )
    (1): Bottleneck(
      (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm1): BatchNorm2d(64, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(64, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (relu): ReLU()
    )
    (2): Bottleneck(
      (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm1): BatchNorm2d(64, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(64, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (relu): ReLU()
    )
  )
  (layer2): Sequential(
    (0): Bottleneck(
      (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)
      (batch_norm1): BatchNorm2d(128, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(128, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(512, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (i_downsample): Sequential(
        (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
        (1): BatchNorm2d(512, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      )
      (relu): ReLU()
    )
    (1): Bottleneck(
      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm1): BatchNorm2d(128, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(128, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(512, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (relu): ReLU()
    )
    (2): Bottleneck(
      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm1): BatchNorm2d(128, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(128, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(512, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (relu): ReLU()
    )
    (3): Bottleneck(
      (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm1): BatchNorm2d(128, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(128, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(512, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (relu): ReLU()
    )
  )
  (layer3): Sequential(
    (0): Bottleneck(
      (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)
      (batch_norm1): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(1024, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (i_downsample): Sequential(
        (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)
        (1): BatchNorm2d(1024, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      )
      (relu): ReLU()
    )
    (1): Bottleneck(
      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm1): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(1024, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (relu): ReLU()
    )
    (2): Bottleneck(
      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm1): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(1024, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (relu): ReLU()
    )
    (3): Bottleneck(
      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm1): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(1024, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (relu): ReLU()
    )
    (4): Bottleneck(
      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm1): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(1024, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (relu): ReLU()
    )
    (5): Bottleneck(
      (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm1): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(256, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(1024, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (relu): ReLU()
    )
  )
  (layer4): Sequential(
    (0): Bottleneck(
      (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
      (batch_norm1): BatchNorm2d(512, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(512, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(2048, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (i_downsample): Sequential(
        (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)
        (1): BatchNorm2d(2048, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      )
      (relu): ReLU()
    )
    (1): Bottleneck(
      (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm1): BatchNorm2d(512, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(512, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(2048, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (relu): ReLU()
    )
    (2): Bottleneck(
      (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm1): BatchNorm2d(512, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=same, bias=False)
      (batch_norm2): BatchNorm2d(512, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (batch_norm3): BatchNorm2d(2048, eps=0.001, momentum=0.99, affine=True, track_running_stats=True)
      (relu): ReLU()
    )
  )
  (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))
  (fc1): Linear(in_features=2048, out_features=512, bias=True)
  (relu1): ReLU()
  (fc2): Linear(in_features=512, out_features=7, bias=True)
)