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)
Геометрические образы сигмовидной и тангенсной функций следующие: