Графика: Строим Нейронную Сеть для Распознавания Изображений за 20 минут - видео HD
00:19:57
editor 10094 ролика
6224 просмотра
Строим Нейронную Сеть для Распознавания Изображений за 20 минут - видео.
В данной лекции мы с вами построим свою собственную нейронную сеть за 20 минут, которая сможет распознавать изображения одежды.
Ссылка на полный курс со скидкой 90%:
www.udemy.com/course/ai-machinelearning-ru/?referralCode=6C8411141FAB3F54B655
Ссылка на полный курс со скидкой 90%:
www.udemy.com/course/ai-machinelearning-ru/?referralCode=6C8411141FAB3F54B655
развернуть свернуть
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import numpy as np
import matplotlib.pyplot as plt
from tensorflow.keras.datasets import mnist # библиотека базы выборок Mnist
from tensorflow import keras
from tensorflow.keras.layers import Dense, Flatten
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# стандартизация входных данных
x_train = x_train / 255
x_train_my = x_train.flatten()
x_test = x_test / 255
x_test_my = x_test.flatten()
y_train_cat = keras.utils.to_categorical(y_train, 10)
y_test_cat = keras.utils.to_categorical(y_test, 10)
plt.imshow(x_train[2], cmap=plt.cm.binary)
plt.show()
x_train_my_2 = []
x_test_my_2 = []
for i in range(0, int(len(x_train_my)/784)):
x_train_my_2.append(x_train_my[i:784 + i])
for ii in range(0, int(len(x_test_my)/784)):
x_test_my_2.append(x_test_my[ii:784 + ii])
j = 59999
print(len(x_train_my_2[j]))
print(y_train_cat[j])
model = keras.Sequential()
model.add(Dense(128, input_shape=(784,), activation='relu'))
model.add(Dense(10, activation='softmax'))
print(model.summary())
model.compile(optimizer=keras.optimizers.Adam(0.001),
loss='categorical_crossentropy',
metrics=['accuracy'])
model.fit(np.array(x_train_my_2), y_train_cat, batch_size=32, epochs=5, validation_split=0.2)
model.evaluate(np.array(x_test_my_2), y_test_cat)
А вот что выдает при обучении:
Epoch 1/5
1500/1500 [==============================] — 4s 3ms/step — loss: 2.3098 — accuracy: 0.1074 — val_loss: 2.3103 — val_accuracy: 0.1040
Epoch 2/5
1500/1500 [==============================] — 3s 2ms/step — loss: 2.3006 — accuracy: 0.1151 — val_loss: 2.3081 — val_accuracy: 0.1073
Epoch 3/5
1500/1500 [==============================] — 4s 2ms/step — loss: 2.2931 — accuracy: 0.1226 — val_loss: 2.3148 — val_accuracy: 0.1024
Epoch 4/5
1500/1500 [==============================] — 4s 2ms/step — loss: 2.2795 — accuracy: 0.1344 — val_loss: 2.3242 — val_accuracy: 0.1042
Epoch 5/5
1500/1500 [==============================] — 4s 2ms/step — loss: 2.2580 — accuracy: 0.1529 — val_loss: 2.3411 — val_accuracy: 0.1020
очевидно что ничего не распознается правильно