51264
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 5, 5, 64) 0
_________________________________________________________________
dropout (Dropout) (None, 5, 5, 64) 0
_________________________________________________________________
flatten (Flatten) (None, 1600) 0
_________________________________________________________________
dense (Dense) (None, 32) 51232
_________________________________________________________________
dense_1 (Dense) (None, 1) 33
=================================================================
Всего параметров: 103 425
Обучаемых параметров: 103 425
Необучаемых параметров: 0
_________________________________________________________________
Обучение модели обычно включает три метода: встроенный метод fit, встроенный метод train_on_batch и пользовательский цикл обучения. Здесь мы выбираем наиболее часто используемый и простой встроенный метод fit.
import datetime
import os
stamp = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
logdir = os.path.join('data', 'autograph', stamp)
## В Python3 рекомендуется использовать pathlib для работы с путями в разных операционных системах
# from pathlib import Path
# stamp = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
# logdir = str(Path('./data/autograph/' + stamp))
tensorboard_callback = tf.keras.callbacks.TensorBoard(logdir, histogram_freq=1)
model.compile(
optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
loss=tf.keras.losses.binary_crossentropy,
metrics=["accuracy"]
)
history = model.fit(ds_train,epochs= 10,validation_data=ds_test,
callbacks = [tensorboard_callback],workers = 4)
Проходить обучение 100 шагов, валидировать 20 шагов
Эпоха 1/10
100/100 [==============================] - 16s 156ms/step - потеря: 0.4830 - точность: 0.7697 - val_потеря: 0.3396 - val_точность: 0.8475
Эпоха 2/10
100/100 [==============================] - 14s 142ms/step - потеря: 0.3437 - точность: 0.8469 - val_потеря: 0.2997 - val_точность: 0.8680
Эпоха 3/10
100/100 [==============================] - 13s 131ms/step - потеря: 0.2871 - точность: 0.8777 - val_потеря: 0.2390 - val_точность: 0.9015
Эпоха 4/10
100/100 [==============================] - 12s 117ms/step - потеря: 0.2410 - точность: 0.9040 - val_потеря: 0.2005 - val_точность: 0.9195
Эпоха 5/10
100/100 [==============================] - 13s 130ms/step - потеря: 0.1992 - точность: 0.9213 - val_потеря: 0.1949 - val_точность: 0.9180
Эпоха 6/10
100/100 [==============================] - 14s 136ms/step - потеря: 0.1737 - точность: 0.9323 - val_потеря: 0.1723 - val_точность: 0.9275
Эпоха 7/10
100/100 [==============================] - 14s 139ms/step - потеря: 0.1531 - точность: 0.9412 - val_потеря: 0.1670 - val_точность: 0.9310
Эпоха 8/10
100/100 [==============================] - 13s 134ms/step - потеря: 0.1299 - точность: 0.9525 - val_потеря: 0.1553 - val_точность: 0.9340
Эпоха 9/10
100/100 [==============================] - 14s 137ms/step - потеря: 0.1158 - точность: 0.9556 - val_потеря: 0.1581 - val_точность: 0.9340
Эпоха 10/10
100/100 [==============================] - 14s 142ms/step - потеря: 0.1006 - точность: 0.9617 - val_потеря: 0.1614 - val_точность: 0.9345
%load_ext tensorboard
#%tensorboard --logdir ./data/keras_model
from tensorboard import notebook
notebook.list()
#Просмотр модели в tensorboard
notebook.start("--logdir ./data/keras_model")
import pandas as pd
dfhistory = pd.DataFrame(history.history)
dfhistory.index = range(1,len(dfhistory) + 1)
dfhistory.index.name = 'epoch'
dfhistory
%matplotlib inline
%config InlineBackend.figure_format = 'svg'
import matplotlib.pyplot as plt
def plot_metric(history, metric):
train_metrics = history.history[metric]
val_metrics = history.history['val_'+metric]
epochs = range(1, len(train_metrics) + 1)
plt.plot(epochs, train_metrics, 'bo--')
plt.plot(epochs, val_metrics, 'ro-')
plt.title('Обучение и валидация')
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )