VGG

машинное обучение

VGG

Сравнение моделей

Модель размер модели Тренировочное время Оценка / рейтинг классификации кошек и собак Kaggle
AlexNet 228.1MB 20 мин/3 эпохи (необходимо измерить снова) 0.97814(1113)
VGG 537.1MB 30 мин/3 эпохи (необходимо измерить снова) 0.41999(907)
googleLeNet 53 MB

Строительство окружающей среды

Используйте файл dockerfile для создания учебных и тестовых сред.

FROM pytorch/pytorch:1.4-cuda10.1-cudnn7-devel
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list \
    && apt-get clean \
    && apt-get update \
    && apt-get install -y libsm6 \
    && apt-get install -y libxrender1 \
    && apt-get install -y libxext-dev \
    && apt-get install -y libgl1-mesa-glx
RUN pip install --upgrade pip \
    && pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple/ \
    && pip install jupyterlab \
    && pip install matplotlib \
    && pip install opencv-python \
    && pip install pillow \
    && pip install torchsummary \
    && pip install pandas

построить образ

docker build -t vgg_pytorch:1.4_0 .

тренировочные навыки

масштабное возмущение

сохранить модель

torch.save(alexnet_model.state_dict(),'../data/self_train.pth')
torch.save(alexnet_model,'../data/self_train.pth')

Экспорт результатов теста

import pandas as pd
dataframe = pd.DataFrame.from_dict(csv_list)
dataframe.to_csv('../7.csv',index=False)

сетевая структура

Роль объединяющего слоя

Основная функция объединяющего слоя — уменьшить размер матрицы и уменьшить параметры, что ускоряет расчет и предотвращает переобучение. Подобно сверточным слоям, объединяющие слои также имеют структуру, подобную фильтру, и также имеют концепцию шага. Слой объединения в основном делится на слой максимального объединения (максимальное объединение) и средний слой объединения (среднее объединение).

полносвязный слой

Во всей сверточной нейронной сети сверточный слой и слой объединения предназначены для извлечения признаков входных данных, тогда полностью связанный слой действует как «классификатор». Реализация относительно проста, просто используйте умножение матриц напрямую.

Регрессия Softmax

Softmax обычно используется для задач классификации, а также может рассматриваться как функция активации, которая используется для преобразования конечного результата вывода в нормализованное распределение вероятностей. Математическая формула выражается как:

функция активации

Мы часто используем функции активации, чтобы удалить линеаризацию модели, позволяя сети абстрагировать более сложные модели с меньшим количеством параметров.Обычные функции активации включают сигмовидную функцию, функцию tanh и функцию relu.

В VGG-16 в качестве функции активации используется relu, а математическое выражение выглядит так:

relu = max(0, x)

Геометрические образы сигмовидной и тангенсной функций следующие: