Рубрики
Без рубрики

Нейронная сеть с набором данных Keras и Mnist. Значение и точность функции потерь в реальном времени.

Вот еще один простой учебник о том, как начать работу с машинным обучением.

Автор оригинала: Alex Polymath.

Здравствуйте, меня зовут Алекс.

Я изучаю машинное обучение. И когда я заканчиваю какое-то задание, мне нравится его публиковать. Чтобы люди могли найти простые образцы для начала работы.

Вы можете запустить Google collab или использовать свой компьютер.

Обзор

В этом уроке мы рассмотрим

  1. Как разделить данные на тестовые и обучающие
  2. Как скомпилировать нейронную сеть с помощью keras
  3. Как нарисовать живой график точности нейронной сети

1. Загрузите данные из kaggle.

Там будет 2 файла

  • Там будет 2 файла
  • test.csv.zip Я понятия не имею, почему, но test file не имеет никакого смысла, так как там нет меток.

test.csv.zip || Я понятия не имею, почему, но || test || file не имеет никакого смысла, || так как там нет меток.

2. Если вы используете Google colab

Drag’n’Drop train.csv.zip файл в файлы

3. Распакуйте файл

!unzip train.csv.zip

3. Импортируйте другие вещи, которые нам нужны

!pip install livelossplot
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('ggplot')
import keras

from sklearn.preprocessing import LabelBinarizer
from sklearn.model_selection import train_test_split
from livelossplot import PlotLossesKeras

4. Приготовьте данные

train_df = pd.read_csv('/content/train.csv') #might be in other place
train_labels = train_df['label'] #We need Y values - labels
train_labels = train_labels.to_numpy() # nothing smart just convert to numpy array
del train_df['label'] # remove label from original dataframe to use it as X
train_data = train_df.to_numpy()


# we can't use values 1,2,3,4,4,5 for Y
# instead we should use smth like [1,0,0,0,0,0], [0,1,0,0,0,0], ...
y = LabelBinarizer().fit_transform(train_labels) 


#Split train and test data
X_train, X_test, y_train, y_test = train_test_split(train_data, y, test_size=0.1)


# Ok, ready to go

5. Скомпилируйте нейронную сеть

# Define sequential model

model = keras.Sequential()

# Define the first layer
model.add(keras.layers.Dense(128, activation="relu", input_shape=(784,)))
model.add(keras.layers.Dense(128, activation="relu", input_shape=(128,)))
model.add(keras.layers.Dense(128, activation="relu", input_shape=(128,)))
model.add(keras.layers.Dense(128, activation="relu", input_shape=(128,)))

# Add activation function to classifier
model.add(keras.layers.Dense(10, activation='softmax'))

# Finish the modecl compilation
model.compile('adam', loss='categorical_crossentropy', metrics=['accuracy'])

# Complete the model fit operation

# callbacks=[PlotLossesKeras()] - this is a single magic line of code which draw #live chart
model.fit(train_data, y, epochs=10, validation_data=(X_test, y_test), callbacks=[PlotLossesKeras()], verbose=0)
скачать (1).png

Потрясающе, ты это сделал!

Теперь вы можете тренировать нейронную сеть для обнаружения покемонов!