Автор оригинала: Alex Polymath.
Привет меня зовут Алекс.
Я изучаю машинное обучение. И когда я закончу какую-то задачу, мне нравится публиковать его. Так что люди могут найти простые образцы, чтобы начать.
Вы можете запустить Google Colab или использовать свой компьютер.
Обзор
В этом руководстве мы охватим
- Как Сплит данные в тест и поезд
- Как Скомпилируйте нейронную сеть с керами
- Как Нарисуйте живую диаграмму точности нейронной сети
1. Загрузить данные из Kaggle.
Там будет 2 файла
- train.csv.zip
- test.csv.zip Я не имею, почему, но Тест Файл не имеет никакого смысла, Так как там нет оттушек.
https://www.kaggle.com/oddrationale/mnist-in-csv
2. Если вы используете Google Colab
Drag’n’drop rain.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 keras.callbacks import EarlyStopping 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']) # patience - how many epochs to wait before stop training # if there is no further improvement monitor_val_acc = EarlyStopping(monitor = 'val_loss', patience = 5) # Complete the model fit operation # callbacks=[PlotLossesKeras()] - this is a single magic line of code which draw #live chart #Also we set up big epochs size, just to test that easly stopping is working model.fit(train_data, y, epochs=10000000, validation_data=(X_test, y_test), callbacks=[PlotLossesKeras(), monitor_val_acc], verbose=0)
Потрясающе, ты сделал это!
Теперь вы можете обучить нейронную сеть для обнаружения покемонов!