Upload 11 files
Browse files- README.md +36 -0
- fingerprint.pb +3 -0
- keras_metadata.pb +3 -0
- model.png +0 -0
- neuro.h5 +3 -0
- neuro.ipynb +346 -0
- neuro_predict.ipynb +205 -0
- saved_model.pb +3 -0
- variables/variables.data-00000-of-00001 +0 -0
- variables/variables.index +0 -0
- work.png +0 -0
README.md
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Распознавание класса изображений на датасете mnist.
|
2 |
+
|
3 |
+
# Задача НС
|
4 |
+
|
5 |
+
Сама модель распознаёт к какому из 10 классов относится изображение, а далее отдельная программа делает вывод,
|
6 |
+
относится изображение к обуви, одежде или сумке.
|
7 |
+
|
8 |
+
## Изображение послойной архитектуры:
|
9 |
+
|
10 |
+
![Изображение послойной архитектуры](./model.png)
|
11 |
+
|
12 |
+
## Общее количество обучаемых параметров
|
13 |
+
Обучаемых параметров: 54,410
|
14 |
+
|
15 |
+
## Используемые алгоритмы оптимизации и функция ошибки
|
16 |
+
Алгоритм оптимизации - `adam`
|
17 |
+
Функция ошибки - `categorical_crossentropy`
|
18 |
+
|
19 |
+
## Размеры тренировочного, валидационного и тестового датасетов:
|
20 |
+
Тренировочный: 60000
|
21 |
+
Тестовый: 10000
|
22 |
+
Валидационный(тестовый): 10000
|
23 |
+
|
24 |
+
## Результаты обучения модели: loss и accuracy на всех трёх датасетах:
|
25 |
+
|
26 |
+
Train Loss: 0.15321196615695953
|
27 |
+
Train Accuracy: 0.9462166428565979
|
28 |
+
|
29 |
+
Test Loss: 0.26492342352867126
|
30 |
+
Test Accuracy: 0.9081000089645386
|
31 |
+
|
32 |
+
Validation Loss: 0.26492342352867126
|
33 |
+
Validation Accuracy: 0.9081000089645386
|
34 |
+
|
35 |
+
## Результаты работы программы и нейросети:
|
36 |
+
![](work.png)
|
fingerprint.pb
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:ab909f9f847415a6a29dde100d058bed4f3943a3e16fa48957f1b777c80057b7
|
3 |
+
size 57
|
keras_metadata.pb
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:bb5f2bc07859019955046413be91f5c202669330721de6ef45fee5548cc3698a
|
3 |
+
size 21200
|
model.png
ADDED
![]() |
neuro.h5
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:883dbed28376b8896eee4bbaf9767eec0e88c02e3027b86ee7e5f4f935ad689d
|
3 |
+
size 59784
|
neuro.ipynb
ADDED
@@ -0,0 +1,346 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"nbformat": 4,
|
3 |
+
"nbformat_minor": 0,
|
4 |
+
"metadata": {
|
5 |
+
"colab": {
|
6 |
+
"provenance": []
|
7 |
+
},
|
8 |
+
"kernelspec": {
|
9 |
+
"name": "python3",
|
10 |
+
"display_name": "Python 3"
|
11 |
+
},
|
12 |
+
"language_info": {
|
13 |
+
"name": "python"
|
14 |
+
}
|
15 |
+
},
|
16 |
+
"cells": [
|
17 |
+
{
|
18 |
+
"cell_type": "markdown",
|
19 |
+
"source": [
|
20 |
+
"# Нейросеть определяет класс предмета из датасета fashion_mnist.\n",
|
21 |
+
"\n",
|
22 |
+
"В данном блокноте проходит сборка, обучение и сохранение нейросети"
|
23 |
+
],
|
24 |
+
"metadata": {
|
25 |
+
"id": "yhiVt36tLkIi"
|
26 |
+
}
|
27 |
+
},
|
28 |
+
{
|
29 |
+
"cell_type": "code",
|
30 |
+
"execution_count": 14,
|
31 |
+
"metadata": {
|
32 |
+
"id": "jEe1cVPhIwI1"
|
33 |
+
},
|
34 |
+
"outputs": [],
|
35 |
+
"source": [
|
36 |
+
"from keras.datasets import fashion_mnist\n",
|
37 |
+
"\n",
|
38 |
+
"# Загрузка датасета\n",
|
39 |
+
"(trainX, trainy), (testX, testy) = fashion_mnist.load_data()"
|
40 |
+
]
|
41 |
+
},
|
42 |
+
{
|
43 |
+
"cell_type": "code",
|
44 |
+
"source": [
|
45 |
+
"# Размеры train, text\n",
|
46 |
+
"print(len(trainX), len(testX))"
|
47 |
+
],
|
48 |
+
"metadata": {
|
49 |
+
"colab": {
|
50 |
+
"base_uri": "https://localhost:8080/"
|
51 |
+
},
|
52 |
+
"id": "ZlrfncGeTEvM",
|
53 |
+
"outputId": "1ffff0f1-a1e8-4972-b84a-689c9acef905"
|
54 |
+
},
|
55 |
+
"execution_count": null,
|
56 |
+
"outputs": [
|
57 |
+
{
|
58 |
+
"output_type": "stream",
|
59 |
+
"name": "stdout",
|
60 |
+
"text": [
|
61 |
+
"60000 10000\n"
|
62 |
+
]
|
63 |
+
}
|
64 |
+
]
|
65 |
+
},
|
66 |
+
{
|
67 |
+
"cell_type": "code",
|
68 |
+
"source": [
|
69 |
+
"# Нормализация данных\n",
|
70 |
+
"trainX = trainX.astype(\"float32\") / 255.0\n",
|
71 |
+
"testX = testX.astype(\"float32\") / 255.0"
|
72 |
+
],
|
73 |
+
"metadata": {
|
74 |
+
"id": "036BwwyKIyjG"
|
75 |
+
},
|
76 |
+
"execution_count": null,
|
77 |
+
"outputs": []
|
78 |
+
},
|
79 |
+
{
|
80 |
+
"cell_type": "code",
|
81 |
+
"source": [
|
82 |
+
"from keras.utils import to_categorical\n",
|
83 |
+
"\n",
|
84 |
+
"# Преобразовываем в категориальный датасет\n",
|
85 |
+
"trainY = to_categorical(trainy, num_classes=10)\n",
|
86 |
+
"testY = to_categorical(testy, num_classes=10)"
|
87 |
+
],
|
88 |
+
"metadata": {
|
89 |
+
"id": "yYrUG1wzI52P"
|
90 |
+
},
|
91 |
+
"execution_count": null,
|
92 |
+
"outputs": []
|
93 |
+
},
|
94 |
+
{
|
95 |
+
"cell_type": "code",
|
96 |
+
"source": [
|
97 |
+
"from keras.models import Sequential\n",
|
98 |
+
"from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense\n",
|
99 |
+
"\n",
|
100 |
+
"# Сборка модели\n",
|
101 |
+
"model = Sequential()\n",
|
102 |
+
"model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))\n",
|
103 |
+
"model.add(MaxPooling2D((2, 2)))\n",
|
104 |
+
"model.add(Flatten())\n",
|
105 |
+
"model.add(Dense(10, activation='softmax'))\n",
|
106 |
+
"\n",
|
107 |
+
"# Компиляция\n",
|
108 |
+
"model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])"
|
109 |
+
],
|
110 |
+
"metadata": {
|
111 |
+
"id": "E0bZrC3QJGiV"
|
112 |
+
},
|
113 |
+
"execution_count": null,
|
114 |
+
"outputs": []
|
115 |
+
},
|
116 |
+
{
|
117 |
+
"cell_type": "code",
|
118 |
+
"source": [
|
119 |
+
"# Визуализация модели\n",
|
120 |
+
"from keras.utils.vis_utils import plot_model\n",
|
121 |
+
"plot_model(model, to_file='model_plot.png', show_shapes=True, show_layer_names=True, show_layer_activations=True)"
|
122 |
+
],
|
123 |
+
"metadata": {
|
124 |
+
"colab": {
|
125 |
+
"base_uri": "https://localhost:8080/",
|
126 |
+
"height": 533
|
127 |
+
},
|
128 |
+
"id": "oBjZKfjyMPVL",
|
129 |
+
"outputId": "84b6162a-7901-4158-a833-a5daf5eabdbe"
|
130 |
+
},
|
131 |
+
"execution_count": null,
|
132 |
+
"outputs": [
|
133 |
+
{
|
134 |
+
"output_type": "execute_result",
|
135 |
+
"data": {
|
136 |
+
"image/png": "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\n",
|
137 |
+
"text/plain": [
|
138 |
+
"<IPython.core.display.Image object>"
|
139 |
+
]
|
140 |
+
},
|
141 |
+
"metadata": {},
|
142 |
+
"execution_count": 6
|
143 |
+
}
|
144 |
+
]
|
145 |
+
},
|
146 |
+
{
|
147 |
+
"cell_type": "code",
|
148 |
+
"source": [
|
149 |
+
"# Данные модели\n",
|
150 |
+
"model.summary()"
|
151 |
+
],
|
152 |
+
"metadata": {
|
153 |
+
"colab": {
|
154 |
+
"base_uri": "https://localhost:8080/"
|
155 |
+
},
|
156 |
+
"id": "a_49lanlUzPk",
|
157 |
+
"outputId": "0843ed80-6a26-4138-810f-7c573f671e3e"
|
158 |
+
},
|
159 |
+
"execution_count": null,
|
160 |
+
"outputs": [
|
161 |
+
{
|
162 |
+
"output_type": "stream",
|
163 |
+
"name": "stdout",
|
164 |
+
"text": [
|
165 |
+
"Model: \"sequential\"\n",
|
166 |
+
"_________________________________________________________________\n",
|
167 |
+
" Layer (type) Output Shape Param # \n",
|
168 |
+
"=================================================================\n",
|
169 |
+
" conv2d (Conv2D) (None, 26, 26, 32) 320 \n",
|
170 |
+
" \n",
|
171 |
+
" max_pooling2d (MaxPooling2D (None, 13, 13, 32) 0 \n",
|
172 |
+
" ) \n",
|
173 |
+
" \n",
|
174 |
+
" flatten (Flatten) (None, 5408) 0 \n",
|
175 |
+
" \n",
|
176 |
+
" dense (Dense) (None, 10) 54090 \n",
|
177 |
+
" \n",
|
178 |
+
"=================================================================\n",
|
179 |
+
"Total params: 54,410\n",
|
180 |
+
"Trainable params: 54,410\n",
|
181 |
+
"Non-trainable params: 0\n",
|
182 |
+
"_________________________________________________________________\n"
|
183 |
+
]
|
184 |
+
}
|
185 |
+
]
|
186 |
+
},
|
187 |
+
{
|
188 |
+
"cell_type": "code",
|
189 |
+
"source": [
|
190 |
+
"# Обучение\n",
|
191 |
+
"model.fit(trainX, trainY, validation_data=(testX, testY), epochs=10, batch_size=32)"
|
192 |
+
],
|
193 |
+
"metadata": {
|
194 |
+
"colab": {
|
195 |
+
"base_uri": "https://localhost:8080/"
|
196 |
+
},
|
197 |
+
"id": "akqi9AZxJfXa",
|
198 |
+
"outputId": "3fcb47ed-d12d-4d27-9d28-008207dcb162"
|
199 |
+
},
|
200 |
+
"execution_count": null,
|
201 |
+
"outputs": [
|
202 |
+
{
|
203 |
+
"output_type": "stream",
|
204 |
+
"name": "stdout",
|
205 |
+
"text": [
|
206 |
+
"Epoch 1/10\n",
|
207 |
+
"1875/1875 [==============================] - 36s 19ms/step - loss: 0.4560 - accuracy: 0.8414 - val_loss: 0.3957 - val_accuracy: 0.8551\n",
|
208 |
+
"Epoch 2/10\n",
|
209 |
+
"1875/1875 [==============================] - 36s 19ms/step - loss: 0.3213 - accuracy: 0.8884 - val_loss: 0.3204 - val_accuracy: 0.8876\n",
|
210 |
+
"Epoch 3/10\n",
|
211 |
+
"1875/1875 [==============================] - 37s 20ms/step - loss: 0.2857 - accuracy: 0.9000 - val_loss: 0.3135 - val_accuracy: 0.8908\n",
|
212 |
+
"Epoch 4/10\n",
|
213 |
+
"1875/1875 [==============================] - 34s 18ms/step - loss: 0.2604 - accuracy: 0.9087 - val_loss: 0.2971 - val_accuracy: 0.8968\n",
|
214 |
+
"Epoch 5/10\n",
|
215 |
+
"1875/1875 [==============================] - 35s 19ms/step - loss: 0.2420 - accuracy: 0.9137 - val_loss: 0.2807 - val_accuracy: 0.9011\n",
|
216 |
+
"Epoch 6/10\n",
|
217 |
+
"1875/1875 [==============================] - 33s 18ms/step - loss: 0.2276 - accuracy: 0.9191 - val_loss: 0.2848 - val_accuracy: 0.8992\n",
|
218 |
+
"Epoch 7/10\n",
|
219 |
+
"1875/1875 [==============================] - 34s 18ms/step - loss: 0.2124 - accuracy: 0.9254 - val_loss: 0.2771 - val_accuracy: 0.9027\n",
|
220 |
+
"Epoch 8/10\n",
|
221 |
+
"1875/1875 [==============================] - 34s 18ms/step - loss: 0.2003 - accuracy: 0.9282 - val_loss: 0.2706 - val_accuracy: 0.9043\n",
|
222 |
+
"Epoch 9/10\n",
|
223 |
+
"1875/1875 [==============================] - 33s 17ms/step - loss: 0.1899 - accuracy: 0.9316 - val_loss: 0.2738 - val_accuracy: 0.9040\n",
|
224 |
+
"Epoch 10/10\n",
|
225 |
+
"1875/1875 [==============================] - 35s 18ms/step - loss: 0.1802 - accuracy: 0.9347 - val_loss: 0.2684 - val_accuracy: 0.9093\n"
|
226 |
+
]
|
227 |
+
},
|
228 |
+
{
|
229 |
+
"output_type": "execute_result",
|
230 |
+
"data": {
|
231 |
+
"text/plain": [
|
232 |
+
"<keras.callbacks.History at 0x7fe6ddaa4460>"
|
233 |
+
]
|
234 |
+
},
|
235 |
+
"metadata": {},
|
236 |
+
"execution_count": 8
|
237 |
+
}
|
238 |
+
]
|
239 |
+
},
|
240 |
+
{
|
241 |
+
"cell_type": "code",
|
242 |
+
"source": [
|
243 |
+
"loss, accuracy = model.evaluate(trainX, trainY)\n",
|
244 |
+
"print(\"Train Loss:\", loss)\n",
|
245 |
+
"print(\"Train Accuracy:\", accuracy)"
|
246 |
+
],
|
247 |
+
"metadata": {
|
248 |
+
"colab": {
|
249 |
+
"base_uri": "https://localhost:8080/"
|
250 |
+
},
|
251 |
+
"id": "GJzq00W2WmC9",
|
252 |
+
"outputId": "691c4e22-36cf-46a9-9033-a79b4b893a6b"
|
253 |
+
},
|
254 |
+
"execution_count": null,
|
255 |
+
"outputs": [
|
256 |
+
{
|
257 |
+
"output_type": "stream",
|
258 |
+
"name": "stdout",
|
259 |
+
"text": [
|
260 |
+
"1875/1875 [==============================] - 13s 7ms/step - loss: 0.1615 - accuracy: 0.9436\n",
|
261 |
+
"Train Loss: 0.16153603792190552\n",
|
262 |
+
"Train Accuracy: 0.9435666799545288\n"
|
263 |
+
]
|
264 |
+
}
|
265 |
+
]
|
266 |
+
},
|
267 |
+
{
|
268 |
+
"cell_type": "code",
|
269 |
+
"source": [
|
270 |
+
"\n",
|
271 |
+
"loss, accuracy = model.evaluate(testX, testY, verbose=0)\n",
|
272 |
+
"print(\"Test Loss:\", loss)\n",
|
273 |
+
"print(\"Test Accuracy:\", accuracy)"
|
274 |
+
],
|
275 |
+
"metadata": {
|
276 |
+
"colab": {
|
277 |
+
"base_uri": "https://localhost:8080/"
|
278 |
+
},
|
279 |
+
"id": "4NYML3sHWfyN",
|
280 |
+
"outputId": "6dd8d835-b6c4-4e39-ca3c-510789686384"
|
281 |
+
},
|
282 |
+
"execution_count": null,
|
283 |
+
"outputs": [
|
284 |
+
{
|
285 |
+
"output_type": "stream",
|
286 |
+
"name": "stdout",
|
287 |
+
"text": [
|
288 |
+
"Test Loss: 0.26842355728149414\n",
|
289 |
+
"Test Accuracy: 0.9093000292778015\n"
|
290 |
+
]
|
291 |
+
}
|
292 |
+
]
|
293 |
+
},
|
294 |
+
{
|
295 |
+
"cell_type": "code",
|
296 |
+
"source": [
|
297 |
+
"print(\"Validation Loss:\", loss)\n",
|
298 |
+
"print(\"Validation Accuracy:\", accuracy)"
|
299 |
+
],
|
300 |
+
"metadata": {
|
301 |
+
"colab": {
|
302 |
+
"base_uri": "https://localhost:8080/"
|
303 |
+
},
|
304 |
+
"id": "TGtnhaDvWttd",
|
305 |
+
"outputId": "6fee7ac8-542c-4f92-edd8-c325837691fa"
|
306 |
+
},
|
307 |
+
"execution_count": null,
|
308 |
+
"outputs": [
|
309 |
+
{
|
310 |
+
"output_type": "stream",
|
311 |
+
"name": "stdout",
|
312 |
+
"text": [
|
313 |
+
"Validation Loss: 0.26842355728149414\n",
|
314 |
+
"Validation Accuracy: 0.9093000292778015\n"
|
315 |
+
]
|
316 |
+
}
|
317 |
+
]
|
318 |
+
},
|
319 |
+
{
|
320 |
+
"cell_type": "code",
|
321 |
+
"source": [
|
322 |
+
"model.save(\"neuro.h5\")\n",
|
323 |
+
"model_file = drive.CreateFile({'neuro.h5' : 'neuro.h5'}) model_file.SetContentFile('neuro.h5') model_file.Upload()"
|
324 |
+
],
|
325 |
+
"metadata": {
|
326 |
+
"id": "cqN38OBpJiUh",
|
327 |
+
"colab": {
|
328 |
+
"base_uri": "https://localhost:8080/",
|
329 |
+
"height": 135
|
330 |
+
},
|
331 |
+
"outputId": "add905b4-8cd0-47a0-ca49-606c864ba38b"
|
332 |
+
},
|
333 |
+
"execution_count": 17,
|
334 |
+
"outputs": [
|
335 |
+
{
|
336 |
+
"output_type": "error",
|
337 |
+
"ename": "SyntaxError",
|
338 |
+
"evalue": "ignored",
|
339 |
+
"traceback": [
|
340 |
+
"\u001b[0;36m File \u001b[0;32m\"<ipython-input-17-192b7c4b5b8d>\"\u001b[0;36m, line \u001b[0;32m2\u001b[0m\n\u001b[0;31m model_file = drive.CreateFile({'neuro.h5' : 'neuro.h5'}) model_file.SetContentFile('neuro.h5') model_file.Upload()\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
|
341 |
+
]
|
342 |
+
}
|
343 |
+
]
|
344 |
+
}
|
345 |
+
]
|
346 |
+
}
|
neuro_predict.ipynb
ADDED
@@ -0,0 +1,205 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"nbformat": 4,
|
3 |
+
"nbformat_minor": 0,
|
4 |
+
"metadata": {
|
5 |
+
"colab": {
|
6 |
+
"provenance": []
|
7 |
+
},
|
8 |
+
"kernelspec": {
|
9 |
+
"name": "python3",
|
10 |
+
"display_name": "Python 3"
|
11 |
+
},
|
12 |
+
"language_info": {
|
13 |
+
"name": "python"
|
14 |
+
}
|
15 |
+
},
|
16 |
+
"cells": [
|
17 |
+
{
|
18 |
+
"cell_type": "code",
|
19 |
+
"execution_count": null,
|
20 |
+
"metadata": {
|
21 |
+
"id": "H_XBs2CcLc6D"
|
22 |
+
},
|
23 |
+
"outputs": [],
|
24 |
+
"source": [
|
25 |
+
"from keras.models import load_model\n",
|
26 |
+
"from keras.datasets import fashion_mnist\n",
|
27 |
+
"import numpy as np\n",
|
28 |
+
"import matplotlib.pyplot as plt"
|
29 |
+
]
|
30 |
+
},
|
31 |
+
{
|
32 |
+
"cell_type": "code",
|
33 |
+
"source": [
|
34 |
+
"# Загрузка датасета\n",
|
35 |
+
"(trainX, trainy), (testX, testy) = fashion_mnist.load_data()"
|
36 |
+
],
|
37 |
+
"metadata": {
|
38 |
+
"id": "AtSmHA-uNFdq"
|
39 |
+
},
|
40 |
+
"execution_count": null,
|
41 |
+
"outputs": []
|
42 |
+
},
|
43 |
+
{
|
44 |
+
"cell_type": "code",
|
45 |
+
"source": [
|
46 |
+
"# Загрузка модели\n",
|
47 |
+
"model = load_model(\"neuro.h5\")"
|
48 |
+
],
|
49 |
+
"metadata": {
|
50 |
+
"id": "vVY49GkVNGmS",
|
51 |
+
"colab": {
|
52 |
+
"base_uri": "https://localhost:8080/",
|
53 |
+
"height": 344
|
54 |
+
},
|
55 |
+
"outputId": "48b0d08d-fcf2-443e-81c7-241b04944fea"
|
56 |
+
},
|
57 |
+
"execution_count": 12,
|
58 |
+
"outputs": [
|
59 |
+
{
|
60 |
+
"output_type": "error",
|
61 |
+
"ename": "OSError",
|
62 |
+
"evalue": "ignored",
|
63 |
+
"traceback": [
|
64 |
+
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
65 |
+
"\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)",
|
66 |
+
"\u001b[0;32m<ipython-input-12-a6f5956a6af9>\u001b[0m in \u001b[0;36m<cell line: 2>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Загрузка модели\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mmodel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mload_model\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"neuro.h5\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
|
67 |
+
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/keras/saving/saving_api.py\u001b[0m in \u001b[0;36mload_model\u001b[0;34m(filepath, custom_objects, compile, safe_mode, **kwargs)\u001b[0m\n\u001b[1;32m 210\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 211\u001b[0m \u001b[0;31m# Legacy case.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 212\u001b[0;31m return legacy_sm_saving_lib.load_model(\n\u001b[0m\u001b[1;32m 213\u001b[0m \u001b[0mfilepath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcustom_objects\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcustom_objects\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcompile\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcompile\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 214\u001b[0m )\n",
|
68 |
+
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/keras/utils/traceback_utils.py\u001b[0m in \u001b[0;36merror_handler\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0;31m# To get the full stack trace, call:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0;31m# `tf.debugging.disable_traceback_filtering()`\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 70\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwith_traceback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfiltered_tb\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 71\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0;32mdel\u001b[0m \u001b[0mfiltered_tb\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
69 |
+
"\u001b[0;32m/usr/local/lib/python3.10/dist-packages/keras/saving/legacy/save.py\u001b[0m in \u001b[0;36mload_model\u001b[0;34m(filepath, custom_objects, compile, options)\u001b[0m\n\u001b[1;32m 228\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_str\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 229\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexists\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_str\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 230\u001b[0;31m raise IOError(\n\u001b[0m\u001b[1;32m 231\u001b[0m \u001b[0;34mf\"No file or directory found at {filepath_str}\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 232\u001b[0m )\n",
|
70 |
+
"\u001b[0;31mOSError\u001b[0m: No file or directory found at neuro.h5"
|
71 |
+
]
|
72 |
+
}
|
73 |
+
]
|
74 |
+
},
|
75 |
+
{
|
76 |
+
"cell_type": "code",
|
77 |
+
"source": [
|
78 |
+
"# Выбираем первые 10 изображений из тестовой выборки\n",
|
79 |
+
"images = testX[:10]"
|
80 |
+
],
|
81 |
+
"metadata": {
|
82 |
+
"id": "2O0UkVNRNM4O"
|
83 |
+
},
|
84 |
+
"execution_count": null,
|
85 |
+
"outputs": []
|
86 |
+
},
|
87 |
+
{
|
88 |
+
"cell_type": "code",
|
89 |
+
"source": [
|
90 |
+
"# Преобразовываем их так, чтобы наша модель могла с ними работать\n",
|
91 |
+
"images = images.reshape(images.shape[0], 28, 28, 1)"
|
92 |
+
],
|
93 |
+
"metadata": {
|
94 |
+
"id": "pZNcB9KNNPza"
|
95 |
+
},
|
96 |
+
"execution_count": null,
|
97 |
+
"outputs": []
|
98 |
+
},
|
99 |
+
{
|
100 |
+
"cell_type": "code",
|
101 |
+
"source": [
|
102 |
+
"# Нормализация\n",
|
103 |
+
"images = images.astype(\"float32\") / 255.0"
|
104 |
+
],
|
105 |
+
"metadata": {
|
106 |
+
"id": "lC7VSifRNbj_"
|
107 |
+
},
|
108 |
+
"execution_count": null,
|
109 |
+
"outputs": []
|
110 |
+
},
|
111 |
+
{
|
112 |
+
"cell_type": "code",
|
113 |
+
"source": [
|
114 |
+
"# Предсказываем метки с использованием нашей модели\n",
|
115 |
+
"predictions = model.predict(images)"
|
116 |
+
],
|
117 |
+
"metadata": {
|
118 |
+
"colab": {
|
119 |
+
"base_uri": "https://localhost:8080/"
|
120 |
+
},
|
121 |
+
"id": "RncCrBXSNdg1",
|
122 |
+
"outputId": "c0452189-9673-4985-dabc-52542484bef8"
|
123 |
+
},
|
124 |
+
"execution_count": null,
|
125 |
+
"outputs": [
|
126 |
+
{
|
127 |
+
"output_type": "stream",
|
128 |
+
"name": "stdout",
|
129 |
+
"text": [
|
130 |
+
"1/1 [==============================] - 0s 452ms/step\n"
|
131 |
+
]
|
132 |
+
}
|
133 |
+
]
|
134 |
+
},
|
135 |
+
{
|
136 |
+
"cell_type": "code",
|
137 |
+
"source": [
|
138 |
+
"# Расшифровываем предсказания нашей нейросети\n",
|
139 |
+
"predicted_labels = [np.argmax(prediction) for prediction in predictions]"
|
140 |
+
],
|
141 |
+
"metadata": {
|
142 |
+
"id": "HOWoH2YgNlOZ"
|
143 |
+
},
|
144 |
+
"execution_count": null,
|
145 |
+
"outputs": []
|
146 |
+
},
|
147 |
+
{
|
148 |
+
"cell_type": "markdown",
|
149 |
+
"source": [
|
150 |
+
"## Таблица с метками тем что они означают\n",
|
151 |
+
"| Метка | Описание |\n",
|
152 |
+
"| --- | --- |\n",
|
153 |
+
"| 0 | Футболка/топ |\n",
|
154 |
+
"| 1 | брюки |\n",
|
155 |
+
"| 2 | Пуловер |\n",
|
156 |
+
"| 3 | Платье |\n",
|
157 |
+
"| 4 | Пальто |\n",
|
158 |
+
"| 5 | Сандалии |\n",
|
159 |
+
"| 6 | Рубашка |\n",
|
160 |
+
"| 7 | кроссовки |\n",
|
161 |
+
"| 8 | Сумка |\n",
|
162 |
+
"| 9 | Ботильоны |"
|
163 |
+
],
|
164 |
+
"metadata": {
|
165 |
+
"id": "5HL4cjXUOKDL"
|
166 |
+
}
|
167 |
+
},
|
168 |
+
{
|
169 |
+
"cell_type": "code",
|
170 |
+
"source": [
|
171 |
+
"fig, axes = plt.subplots(2, 5, figsize=(12, 6))\n",
|
172 |
+
"axes = axes.ravel()\n",
|
173 |
+
"\n",
|
174 |
+
"for i in range(10):\n",
|
175 |
+
" axes[i].imshow(images[i].reshape(28, 28), cmap='gray')\n",
|
176 |
+
" axes[i].set_title(predicted_labels[i])\n",
|
177 |
+
" axes[i].axis('off')\n",
|
178 |
+
"\n",
|
179 |
+
"plt.tight_layout()\n",
|
180 |
+
"plt.show()"
|
181 |
+
],
|
182 |
+
"metadata": {
|
183 |
+
"colab": {
|
184 |
+
"base_uri": "https://localhost:8080/",
|
185 |
+
"height": 507
|
186 |
+
},
|
187 |
+
"id": "ocaEWJFrNuWi",
|
188 |
+
"outputId": "050e46f0-acf6-4aef-d7e8-b330ef9ae01e"
|
189 |
+
},
|
190 |
+
"execution_count": null,
|
191 |
+
"outputs": [
|
192 |
+
{
|
193 |
+
"output_type": "display_data",
|
194 |
+
"data": {
|
195 |
+
"text/plain": [
|
196 |
+
"<Figure size 1200x600 with 10 Axes>"
|
197 |
+
],
|
198 |
+
"image/png": "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\n"
|
199 |
+
},
|
200 |
+
"metadata": {}
|
201 |
+
}
|
202 |
+
]
|
203 |
+
}
|
204 |
+
]
|
205 |
+
}
|
saved_model.pb
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:5eaa9f6666bae7f0df31126dbe4daabe520bd05c8ee5c840bbb0a9ea87f184ad
|
3 |
+
size 149562
|
variables/variables.data-00000-of-00001
ADDED
Binary file (230 kB). View file
|
|
variables/variables.index
ADDED
Binary file (1.1 kB). View file
|
|
work.png
ADDED
![]() |