4.
Ход работы
Прежде, чем выполнять нижеследующие задания, ознакомьтесь с теоретической справкой,
описанием инструментов, библиотек и датасетов.
По результатам выполнения работы
преподавателю должны быть предоставлены
от
каждой из бригад:
программные коды в виде файлов Colab / Jupiter Notebooks,
отчёт в формате MS Word, оформленный в соответствии с требованиям ГОСТ к научным
(учебным) документам.
Все указанные выше файлы должны быть размещены на Google
Drive вашего аккаунта в
отдельной папке
. Доступ к ней должен был
выдан преподавателю
(maxis81@gmail.com), с
рассылкой уведомления (когда ваша работа будет
полностью завершена
).
4.1.
Реализация и обучение НС для задачи классификации
6
Создайте новый Colab notebook, перейдя по адресу https://colab.research.google.com/ или
сделав это из Google Drive.
При помощи меню выберите работу на GPU: Runtime -> Change runtime type -> GPU. Для
проверки успешности подключения и работы графического процессора (иногда он
оказывается
недоступен, в этом случае нужно повторить попытку его включения позже) может бытьиспользован
следующий программный код:
import tensorflow as tf
tf.test.gpu_device_name() # в случае успешности будет выдан примерно такой
результат '/device:GPU:0'
Произведите подключение всех необходимых библиотек (Pandas, Keras, Seaborn) при
помощи вызова конструкций
import
, как было описано в разделе «Инструменты и библиотеки».
Произведите загрузку обучающего и тестового набора данных из четырёх файлов в формате
csv (прилагаются к лабораторной работе,
являются обработкой датасета, описывающего
диагностику рака груди
7
):
from google.colab import files
file = files.upload()
X_train = pd.read_csv("xtrain.csv", header=None)
Y_train = pd.read_csv("ytrain.csv", header=None)
X_test = pd.read_csv("xtest.csv", header=None)
Y_test = pd.read_csv("ytest.csv", header=None)
Создайте нейронную сеть из четырёх слоёв, задав для всех, кроме
последнего слоя, быстро
вычисляемую функцию активации RELU. Для этого целесообразно использовать модель Keras
Sequential
8
. Параметр входного слоя
input_dim
определяется тем, что в используемом датасете
количество факторов равно 30 (ещё 2 колонки – описательные).
При первом выполнении
6
Данный
пример
описан
в
серии
видео
https://www.youtube.com/watch?v=inN8seMm7UI&list=PLQY2H8rRoyvyK5aEDAI3wUUqC_F0oEroL
7
Первоисточник
и
описание:
https://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+(Diagnostic)
8
См.
содержательное
описание
https://keras.io/getting-started/sequential-model-guide/
и
документацию по основным методам (compile, fit, predict) https://keras.io/models/sequential/
работы количество нейронов в каждом из слоёв рекомендуется использовать как в примере
ниже:
from keras.models import Sequential
from keras.layers import Dense
classifier = Sequential() # Инициализация НС
classifier.add(Dense(units = 16, activation = 'relu', input_dim = 30))
classifier.add(Dense(units = 8, activation = 'relu'))
classifier.add(Dense(units = 6, activation = 'relu'))
classifier.add(Dense(units = 1, activation = 'sigmoid'))
Укажите метод оптимизации
9
и функцию потери
10
:
classifier.compile(optimizer = 'rmsprop', loss = 'binary_crossentropy')
Теперь мы можем провести обучение нейронной сети. Вместо количества эпох, равного 100,
как в
нижеследующем примере,
Достарыңызбен бөлісу: