PCAM DATASET AND TRAIN MODEL
ЛАБОРАТОРНЫЕ РАБОТЫ ПО КУРСУ
«МЕТОДЫ ГЛУБОКОГО ОБУЧЕНИЯ ДЛЯ РЕШЕНИЯ ЗАДАЧ КОМПЬЮТЕРНОГО ЗРЕНИЯ».
Цель данной лабораторной работы - с помощью нейронных сетей реализовать решение задачи бинарной классификации.
Имеются входные данные. Вычисляем выход сети U. Также существует ожидаемый выход сети Y. Необходимо минимизировать функцию ошибки E(Y, U).
Бинарная кросс-энтропия
Сеть обучаем определенное количество эпох, то есть полностью проходим по тестовой выборке и делим данные на пакеты.
- Инициализация весов
- В каждой эпохе происходит:
-
Перемешивание выборки
-
Пакетное использование данных
-
Корректировка весов по алгоритму обратного распространения ошибки
В работе используются данные из https://github.com/basveeling/pcam, полученные из гистологических сканирований срезов лимфатических узлов. Каждое изображение помечено бинарной меткой, которая показывает наличие метастатической ткани. Зеленые прямоугольники в центральной области указывают на опухолевую ткань , что является положительной меткой.
Пример изображений.
Общее количество - 327680 цветных изображений размером w * h * c = 96 * 96 * 3.
Данные | Количество примеров |
---|---|
train | 262.144 |
test | 32.768 |
valid | 32.768 |
Y - оригинал U - наш классификатор
Y = TRUE | Y = FALSE | |
---|---|---|
U = TRUE | True Pos | False Pos |
U = FALSE | False Neg | True Neg |
- точность классификатора, где
Модель хранения данных: HDF5 Matrix
Список используемых файлов в данном формате:
train_x_name = 'camelyonpatch_level_2_split_train_x.h5'
train_y_name = 'camelyonpatch_level_2_split_train_y.h5'
test_x_name = 'camelyonpatch_level_2_split_test_x.h5'
test_y_name = 'camelyonpatch_level_2_split_test_y.h5'
valid_x_name = 'camelyonpatch_level_2_split_valid_x.h5'
valid_y_name = 'camelyonpatch_level_2_split_valid_y.h5'
meta_train_name = 'camelyonpatch_level_2_split_train_meta.csv'
meta_valid_name = 'camelyonpatch_level_2_split_valid_meta.csv'
meta_test_name = 'camelyonpatch_level_2_split_test_meta.csv'
Данные необходимо предобработать. Изменим размер до 32 * 32 * 3 и представим в виде вектора размерностью (1,1,3072), также нормализуем значения в нем, поделив на 255. Формат хранения: NumPy N-dimentional array
.
Библиотека | Основное назначение |
---|---|
google.colab | соединяет с Google Drive |
tensorflow | backend Keras |
keras | основной фреймворк для работы с нейронными сетями |
gzip | архивация данных |
shutil | обработка файлов и данных |
pandas | анализ данных |
matplotlib | визуализация данных |
cv2 (OpenCV) | библиотека компьютерного зрения |
numpy | работа с тензорами |
keras_metrics | работа с метриками |