68 KiB
68 KiB
Zadanie 8 - Alexnet + Dropout & BatchRegularization
Aleksandra Jonas, Aleksandra Gronowska, Iwona Christop
Przygotowanie danych
from IPython.display import Image, display
import sys
import subprocess
import pkg_resources
import numpy as np
required = { 'scikit-image'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed
# Alexnet requires images to be of dim = (227, 227, 3)
newSize = (227,227)
if missing:
python = sys.executable
subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
def load_train_data(input_dir):
import numpy as np
import pandas as pd
import os
from skimage.io import imread
import cv2 as cv
from pathlib import Path
import random
from shutil import copyfile, rmtree
import json
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib
image_dir = Path(input_dir)
categories_name = []
for file in os.listdir(image_dir):
d = os.path.join(image_dir, file)
if os.path.isdir(d):
categories_name.append(file)
folders = [directory for directory in image_dir.iterdir() if directory.is_dir()]
train_img = []
categories_count=[]
labels=[]
for i, direc in enumerate(folders):
count = 0
for obj in direc.iterdir():
if os.path.isfile(obj) and os.path.basename(os.path.normpath(obj)) != 'desktop.ini':
labels.append(os.path.basename(os.path.normpath(direc)))
count += 1
img = imread(obj)#zwraca ndarry postaci xSize x ySize x colorDepth
img = img[:, :, :3]
img = cv.resize(img, newSize, interpolation=cv.INTER_AREA)# zwraca ndarray
img = img / 255 #normalizacja
train_img.append(img)
categories_count.append(count)
X={}
X["values"] = np.array(train_img)
X["categories_name"] = categories_name
X["categories_count"] = categories_count
X["labels"]=labels
return X
def load_test_data(input_dir):
import numpy as np
import pandas as pd
import os
from skimage.io import imread
import cv2 as cv
from pathlib import Path
import random
from shutil import copyfile, rmtree
import json
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib
image_path = Path(input_dir)
labels_path = image_path.parents[0] / 'test_labels.json'
jsonString = labels_path.read_text()
objects = json.loads(jsonString)
categories_name = []
categories_count=[]
count = 0
c = objects[0]['value']
for e in objects:
if e['value'] != c:
categories_count.append(count)
c = e['value']
count = 1
else:
count += 1
if not e['value'] in categories_name:
categories_name.append(e['value'])
categories_count.append(count)
test_img = []
labels=[]
for e in objects:
p = image_path / e['filename']
img = imread(p)#zwraca ndarry postaci xSize x ySize x colorDepth
img = img[:, :, :3]
img = cv.resize(img, newSize, interpolation=cv.INTER_AREA)# zwraca ndarray
img = img / 255#normalizacja
test_img.append(img)
labels.append(e['value'])
X={}
X["values"] = np.array(test_img)
X["categories_name"] = categories_name
X["categories_count"] = categories_count
X["labels"]=labels
return X
# Data load
data_train = load_train_data("./train_test_sw/train_sw")
values_train = data_train['values']
labels_train = data_train['labels']
data_test = load_test_data("./train_test_sw/test_sw")
X_test = data_test['values']
y_test = data_test['labels']
from sklearn.model_selection import train_test_split
X_train, X_validate, y_train, y_validate = train_test_split(values_train, labels_train, test_size=0.2, random_state=42)
from sklearn.preprocessing import LabelEncoder
class_le = LabelEncoder()
y_train_enc = class_le.fit_transform(y_train)
y_validate_enc = class_le.fit_transform(y_validate)
y_test_enc = class_le.fit_transform(y_test)
class_le = LabelEncoder()
y_train_enc = class_le.fit_transform(y_train)
y_validate_enc = class_le.fit_transform(y_validate)
y_test_enc = class_le.fit_transform(y_test)
import tensorflow as tf
train_ds = tf.data.Dataset.from_tensor_slices((X_train, y_train_enc))
validation_ds = tf.data.Dataset.from_tensor_slices((X_validate, y_validate_enc))
test_ds = tf.data.Dataset.from_tensor_slices((X_test, y_test_enc))
train_ds_size = tf.data.experimental.cardinality(train_ds).numpy()
test_ds_size = tf.data.experimental.cardinality(test_ds).numpy()
validation_ds_size = tf.data.experimental.cardinality(validation_ds).numpy()
print("Training data size:", train_ds_size)
print("Test data size:", test_ds_size)
print("Validation data size:", validation_ds_size)
Training data size: 820 Test data size: 259 Validation data size: 206
train_ds = (train_ds
.shuffle(buffer_size=train_ds_size)
.batch(batch_size=32, drop_remainder=True))
test_ds = (test_ds
.shuffle(buffer_size=train_ds_size)
.batch(batch_size=32, drop_remainder=True))
validation_ds = (validation_ds
.shuffle(buffer_size=train_ds_size)
.batch(batch_size=32, drop_remainder=True))
from tensorflow import keras
Dropout
Do warstw spłaszczonych
model_flat_drop = keras.models.Sequential([
keras.layers.Conv2D(filters=96, kernel_size=(11,11), strides=(4,4), activation='relu', input_shape=(227,227,3)),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Conv2D(filters=256, kernel_size=(5,5), strides=(1,1), activation='relu', padding="same"),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Flatten(),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dropout(.5),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dropout(.5),
keras.layers.Dense(10, activation='softmax')
])
model_flat_drop.compile(loss='sparse_categorical_crossentropy', optimizer=tf.optimizers.SGD(lr=.001), metrics=['accuracy'])
model_flat_drop.summary()
WARNING:absl:`lr` is deprecated, please use `learning_rate` instead, or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.SGD.
Model: "sequential" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d (Conv2D) (None, 55, 55, 96) 34944 max_pooling2d (MaxPooling2D (None, 27, 27, 96) 0 ) conv2d_1 (Conv2D) (None, 27, 27, 256) 614656 max_pooling2d_1 (MaxPooling (None, 13, 13, 256) 0 2D) conv2d_2 (Conv2D) (None, 13, 13, 384) 885120 conv2d_3 (Conv2D) (None, 13, 13, 384) 1327488 conv2d_4 (Conv2D) (None, 13, 13, 256) 884992 max_pooling2d_2 (MaxPooling (None, 6, 6, 256) 0 2D) flatten (Flatten) (None, 9216) 0 dense (Dense) (None, 4096) 37752832 dropout (Dropout) (None, 4096) 0 dense_1 (Dense) (None, 4096) 16781312 dropout_1 (Dropout) (None, 4096) 0 dense_2 (Dense) (None, 10) 40970 ================================================================= Total params: 58,322,314 Trainable params: 58,322,314 Non-trainable params: 0 _________________________________________________________________
from keras.callbacks import ModelCheckpoint, EarlyStopping
checkpoint = ModelCheckpoint("alex_1.h5", monitor='val_accuracy', verbose=1, save_best_only=True, save_weights_only=False, mode='auto', period=1)
early = EarlyStopping(monitor='val_accuracy', min_delta=0, patience=20, verbose=1, mode='auto')
alex1 = model_flat_drop.fit_generator(
steps_per_epoch=len(train_ds),
generator=train_ds,
validation_data= validation_ds,
validation_steps=len(validation_ds),
epochs=25,
callbacks=[checkpoint,early])
WARNING:tensorflow:`period` argument is deprecated. Please use `save_freq` to specify the frequency in number of batches seen.
WARNING:tensorflow:`period` argument is deprecated. Please use `save_freq` to specify the frequency in number of batches seen. /var/folders/6b/j4d60ym516x2s6wymzj707rh0000gn/T/ipykernel_13671/1946638494.py:6: UserWarning: `Model.fit_generator` is deprecated and will be removed in a future version. Please use `Model.fit`, which supports generators. alex1 = model_flat_drop.fit_generator(
Epoch 1/25
2023-01-06 21:33:12.260921: W tensorflow/tsl/platform/profile_utils/cpu_utils.cc:128] Failed to get CPU frequency: 0 Hz
25/25 [==============================] - ETA: 0s - loss: 2.2671 - accuracy: 0.1963 Epoch 1: val_accuracy improved from -inf to 0.20312, saving model to alex_1.h5 25/25 [==============================] - 24s 939ms/step - loss: 2.2671 - accuracy: 0.1963 - val_loss: 2.2120 - val_accuracy: 0.2031 Epoch 2/25 25/25 [==============================] - ETA: 0s - loss: 2.0757 - accuracy: 0.1875 Epoch 2: val_accuracy improved from 0.20312 to 0.28125, saving model to alex_1.h5 25/25 [==============================] - 22s 899ms/step - loss: 2.0757 - accuracy: 0.1875 - val_loss: 1.7334 - val_accuracy: 0.2812 Epoch 3/25 25/25 [==============================] - ETA: 0s - loss: 1.7064 - accuracy: 0.2100 Epoch 3: val_accuracy did not improve from 0.28125 25/25 [==============================] - 23s 940ms/step - loss: 1.7064 - accuracy: 0.2100 - val_loss: 1.6128 - val_accuracy: 0.2656 Epoch 4/25 25/25 [==============================] - ETA: 0s - loss: 1.6449 - accuracy: 0.2537 Epoch 4: val_accuracy improved from 0.28125 to 0.34896, saving model to alex_1.h5 25/25 [==============================] - 23s 918ms/step - loss: 1.6449 - accuracy: 0.2537 - val_loss: 1.5930 - val_accuracy: 0.3490 Epoch 5/25 25/25 [==============================] - ETA: 0s - loss: 1.6596 - accuracy: 0.2275 Epoch 5: val_accuracy did not improve from 0.34896 25/25 [==============================] - 23s 928ms/step - loss: 1.6596 - accuracy: 0.2275 - val_loss: 1.5650 - val_accuracy: 0.2865 Epoch 6/25 25/25 [==============================] - ETA: 0s - loss: 1.6292 - accuracy: 0.2625 Epoch 6: val_accuracy did not improve from 0.34896 25/25 [==============================] - 23s 935ms/step - loss: 1.6292 - accuracy: 0.2625 - val_loss: 1.5573 - val_accuracy: 0.3021 Epoch 7/25 25/25 [==============================] - ETA: 0s - loss: 1.6197 - accuracy: 0.2562 Epoch 7: val_accuracy did not improve from 0.34896 25/25 [==============================] - 23s 929ms/step - loss: 1.6197 - accuracy: 0.2562 - val_loss: 1.5328 - val_accuracy: 0.3125 Epoch 8/25 25/25 [==============================] - ETA: 0s - loss: 1.5907 - accuracy: 0.2975 Epoch 8: val_accuracy improved from 0.34896 to 0.36458, saving model to alex_1.h5 25/25 [==============================] - 24s 943ms/step - loss: 1.5907 - accuracy: 0.2975 - val_loss: 1.4958 - val_accuracy: 0.3646 Epoch 9/25 25/25 [==============================] - ETA: 0s - loss: 1.5715 - accuracy: 0.2962 Epoch 9: val_accuracy improved from 0.36458 to 0.40104, saving model to alex_1.h5 25/25 [==============================] - 24s 944ms/step - loss: 1.5715 - accuracy: 0.2962 - val_loss: 1.4821 - val_accuracy: 0.4010 Epoch 10/25 25/25 [==============================] - ETA: 0s - loss: 1.5357 - accuracy: 0.3162 Epoch 10: val_accuracy did not improve from 0.40104 25/25 [==============================] - 23s 937ms/step - loss: 1.5357 - accuracy: 0.3162 - val_loss: 1.4562 - val_accuracy: 0.3958 Epoch 11/25 25/25 [==============================] - ETA: 0s - loss: 1.5030 - accuracy: 0.3262 Epoch 11: val_accuracy improved from 0.40104 to 0.45833, saving model to alex_1.h5 25/25 [==============================] - 24s 970ms/step - loss: 1.5030 - accuracy: 0.3262 - val_loss: 1.4106 - val_accuracy: 0.4583 Epoch 12/25 25/25 [==============================] - ETA: 0s - loss: 1.4862 - accuracy: 0.3613 Epoch 12: val_accuracy improved from 0.45833 to 0.53125, saving model to alex_1.h5 25/25 [==============================] - 25s 1s/step - loss: 1.4862 - accuracy: 0.3613 - val_loss: 1.3597 - val_accuracy: 0.5312 Epoch 13/25 25/25 [==============================] - ETA: 0s - loss: 1.4194 - accuracy: 0.4162 Epoch 13: val_accuracy did not improve from 0.53125 25/25 [==============================] - 24s 974ms/step - loss: 1.4194 - accuracy: 0.4162 - val_loss: 1.3095 - val_accuracy: 0.4583 Epoch 14/25 25/25 [==============================] - ETA: 0s - loss: 1.3418 - accuracy: 0.4437 Epoch 14: val_accuracy did not improve from 0.53125 25/25 [==============================] - 24s 959ms/step - loss: 1.3418 - accuracy: 0.4437 - val_loss: 1.2787 - val_accuracy: 0.4792 Epoch 15/25 25/25 [==============================] - ETA: 0s - loss: 1.3059 - accuracy: 0.4675 Epoch 15: val_accuracy did not improve from 0.53125 25/25 [==============================] - 24s 951ms/step - loss: 1.3059 - accuracy: 0.4675 - val_loss: 1.2374 - val_accuracy: 0.4635 Epoch 16/25 25/25 [==============================] - ETA: 0s - loss: 1.2688 - accuracy: 0.4725 Epoch 16: val_accuracy did not improve from 0.53125 25/25 [==============================] - 24s 955ms/step - loss: 1.2688 - accuracy: 0.4725 - val_loss: 1.2178 - val_accuracy: 0.4583 Epoch 17/25 25/25 [==============================] - ETA: 0s - loss: 1.2209 - accuracy: 0.4875 Epoch 17: val_accuracy did not improve from 0.53125 25/25 [==============================] - 24s 958ms/step - loss: 1.2209 - accuracy: 0.4875 - val_loss: 1.2793 - val_accuracy: 0.3958 Epoch 18/25 25/25 [==============================] - ETA: 0s - loss: 1.1457 - accuracy: 0.5150 Epoch 18: val_accuracy improved from 0.53125 to 0.55729, saving model to alex_1.h5 25/25 [==============================] - 24s 980ms/step - loss: 1.1457 - accuracy: 0.5150 - val_loss: 1.0978 - val_accuracy: 0.5573 Epoch 19/25 25/25 [==============================] - ETA: 0s - loss: 1.1318 - accuracy: 0.5063 Epoch 19: val_accuracy did not improve from 0.55729 25/25 [==============================] - 27s 1s/step - loss: 1.1318 - accuracy: 0.5063 - val_loss: 1.0764 - val_accuracy: 0.5104 Epoch 20/25 25/25 [==============================] - ETA: 0s - loss: 1.1289 - accuracy: 0.5125 Epoch 20: val_accuracy improved from 0.55729 to 0.56771, saving model to alex_1.h5 25/25 [==============================] - 25s 1s/step - loss: 1.1289 - accuracy: 0.5125 - val_loss: 1.0067 - val_accuracy: 0.5677 Epoch 21/25 25/25 [==============================] - ETA: 0s - loss: 1.0175 - accuracy: 0.5638 Epoch 21: val_accuracy did not improve from 0.56771 25/25 [==============================] - 26s 1s/step - loss: 1.0175 - accuracy: 0.5638 - val_loss: 1.0095 - val_accuracy: 0.5625 Epoch 22/25 25/25 [==============================] - ETA: 0s - loss: 1.0559 - accuracy: 0.5288 Epoch 22: val_accuracy did not improve from 0.56771 25/25 [==============================] - 26s 1s/step - loss: 1.0559 - accuracy: 0.5288 - val_loss: 1.0557 - val_accuracy: 0.5208 Epoch 23/25 25/25 [==============================] - ETA: 0s - loss: 1.1151 - accuracy: 0.5412 Epoch 23: val_accuracy did not improve from 0.56771 25/25 [==============================] - 26s 1s/step - loss: 1.1151 - accuracy: 0.5412 - val_loss: 1.0837 - val_accuracy: 0.5052 Epoch 24/25 25/25 [==============================] - ETA: 0s - loss: 1.0158 - accuracy: 0.5625 Epoch 24: val_accuracy improved from 0.56771 to 0.58333, saving model to alex_1.h5 25/25 [==============================] - 28s 1s/step - loss: 1.0158 - accuracy: 0.5625 - val_loss: 0.9605 - val_accuracy: 0.5833 Epoch 25/25 6/25 [======>.......................] - ETA: 20s - loss: 0.9373 - accuracy: 0.5781
import matplotlib.pyplot as plt
plt.plot(alex1.history["accuracy"])
plt.plot(alex1.history['val_accuracy'])
plt.plot(alex1.history['loss'])
plt.plot(alex1.history['val_loss'])
plt.title("Model accuracy")
plt.ylabel("Value")
plt.xlabel("Epoch")
plt.legend(["Accuracy","Validation Accuracy","Loss","Validation Loss"])
plt.show()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
alex1.evaluate(test_ds)
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
Do warstw maxpooling
model_pool_drop = keras.models.Sequential([
keras.layers.Conv2D(filters=96, kernel_size=(11,11), strides=(4,4), activation='relu', input_shape=(227,227,3)),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=256, kernel_size=(5,5), strides=(1,1), activation='relu', padding="same"),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Dropout(.5),
keras.layers.Flatten(),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
model_pool_drop.compile(loss='sparse_categorical_crossentropy', optimizer=tf.optimizers.SGD(lr=.001), metrics=['accuracy'])
model_pool_drop.summary()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
checkpoint = ModelCheckpoint("alex_2.h5", monitor='val_accuracy', verbose=1, save_best_only=True, save_weights_only=False, mode='auto', period=1)
early = EarlyStopping(monitor='val_accuracy', min_delta=0, patience=20, verbose=1, mode='auto')
alex2 = model_pool_drop.fit_generator(
steps_per_epoch=len(train_ds),
generator=train_ds,
validation_data= validation_ds,
validation_steps=len(validation_ds),
epochs=25,
callbacks=[checkpoint,early])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
plt.plot(alex2.history["accuracy"])
plt.plot(alex2.history['val_accuracy'])
plt.plot(alex2.history['loss'])
plt.plot(alex2.history['val_loss'])
plt.title("Model accuracy")
plt.ylabel("Value")
plt.xlabel("Epoch")
plt.legend(["Accuracy","Validation Accuracy","Loss","Validation Loss"])
plt.show()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
alex2.evaluate(test_ds)
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
Do warstw splotowych
model_conv_drop = keras.models.Sequential([
keras.layers.Conv2D(filters=96, kernel_size=(11,11), strides=(4,4), activation='relu', input_shape=(227,227,3)),
keras.layers.Dropout(.5),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Conv2D(filters=256, kernel_size=(5,5), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Flatten(),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
model_conv_drop.compile(loss='sparse_categorical_crossentropy', optimizer=tf.optimizers.SGD(lr=.001), metrics=['accuracy'])
model_conv_drop.summary()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
checkpoint = ModelCheckpoint("alex_3.h5", monitor='val_accuracy', verbose=1, save_best_only=True, save_weights_only=False, mode='auto', period=1)
early = EarlyStopping(monitor='val_accuracy', min_delta=0, patience=20, verbose=1, mode='auto')
alex3 = model_conv_drop.fit_generator(
steps_per_epoch=len(train_ds),
generator=train_ds,
validation_data= validation_ds,
validation_steps=len(validation_ds),
epochs=25,
callbacks=[checkpoint,early])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
plt.plot(alex3.history["accuracy"])
plt.plot(alex3.history['val_accuracy'])
plt.plot(alex3.history['loss'])
plt.plot(alex3.history['val_loss'])
plt.title("Model accuracy")
plt.ylabel("Value")
plt.xlabel("Epoch")
plt.legend(["Accuracy","Validation Accuracy","Loss","Validation Loss"])
plt.show()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
alex3.evaluate(test_ds)
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
Do warstw spłaszczonych i maxpooling
model_flat_pool_drop = keras.models.Sequential([
keras.layers.Conv2D(filters=96, kernel_size=(11,11), strides=(4,4), activation='relu', input_shape=(227,227,3)),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=256, kernel_size=(5,5), strides=(1,1), activation='relu', padding="same"),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Dropout(.5),
keras.layers.Flatten(),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dropout(.5),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dropout(.5),
keras.layers.Dense(10, activation='softmax')
])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
model_flat_pool_drop.compile(loss='sparse_categorical_crossentropy', optimizer=tf.optimizers.SGD(lr=.001), metrics=['accuracy'])
model_flat_pool_drop.summary()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
checkpoint = ModelCheckpoint("alex_4.h5", monitor='val_accuracy', verbose=1, save_best_only=True, save_weights_only=False, mode='auto', period=1)
early = EarlyStopping(monitor='val_accuracy', min_delta=0, patience=20, verbose=1, mode='auto')
alex4 = model_flat_pool_drop.fit_generator(
steps_per_epoch=len(train_ds),
generator=train_ds,
validation_data= validation_ds,
validation_steps=len(validation_ds),
epochs=25,
callbacks=[checkpoint,early])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
plt.plot(alex4.history["accuracy"])
plt.plot(alex4.history['val_accuracy'])
plt.plot(alex4.history['loss'])
plt.plot(alex4.history['val_loss'])
plt.title("Model accuracy")
plt.ylabel("Value")
plt.xlabel("Epoch")
plt.legend(["Accuracy","Validation Accuracy","Loss","Validation Loss"])
plt.show()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
alex4.evaluate(test_ds)
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
Do warstw spłaszczonych i splotowych
model_flat_conv_drop = keras.models.Sequential([
keras.layers.Conv2D(filters=96, kernel_size=(11,11), strides=(4,4), activation='relu', input_shape=(227,227,3)),
keras.layers.Dropout(.5),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Conv2D(filters=256, kernel_size=(5,5), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Flatten(),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dropout(.5),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dropout(.5),
keras.layers.Dense(10, activation='softmax')
])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
model_flat_conv_drop.compile(loss='sparse_categorical_crossentropy', optimizer=tf.optimizers.SGD(lr=.001), metrics=['accuracy'])
model_flat_conv_drop.summary()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
checkpoint = ModelCheckpoint("alex_5.h5", monitor='val_accuracy', verbose=1, save_best_only=True, save_weights_only=False, mode='auto', period=1)
early = EarlyStopping(monitor='val_accuracy', min_delta=0, patience=20, verbose=1, mode='auto')
alex5 = model_flat_conv_drop.fit_generator(
steps_per_epoch=len(train_ds),
generator=train_ds,
validation_data= validation_ds,
validation_steps=len(validation_ds),
epochs=25,
callbacks=[checkpoint,early])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
plt.plot(alex5.history["accuracy"])
plt.plot(alex5.history['val_accuracy'])
plt.plot(alex5.history['loss'])
plt.plot(alex5.history['val_loss'])
plt.title("Model accuracy")
plt.ylabel("Value")
plt.xlabel("Epoch")
plt.legend(["Accuracy","Validation Accuracy","Loss","Validation Loss"])
plt.show()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
alex5.evaluate(test_ds)
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
Do warstw maxpooling i splotowych
model_pool_conv_drop = keras.models.Sequential([
keras.layers.Conv2D(filters=96, kernel_size=(11,11), strides=(4,4), activation='relu', input_shape=(227,227,3)),
keras.layers.Dropout(.5),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=256, kernel_size=(5,5), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Dropout(.5),
keras.layers.Flatten(),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
model_pool_conv_drop.compile(loss='sparse_categorical_crossentropy', optimizer=tf.optimizers.SGD(lr=.001), metrics=['accuracy'])
model_pool_conv_drop.summary()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
checkpoint = ModelCheckpoint("alex_6.h5", monitor='val_accuracy', verbose=1, save_best_only=True, save_weights_only=False, mode='auto', period=1)
early = EarlyStopping(monitor='val_accuracy', min_delta=0, patience=20, verbose=1, mode='auto')
alex6 = model_pool_conv_drop.fit_generator(
steps_per_epoch=len(train_ds),
generator=train_ds,
validation_data= validation_ds,
validation_steps=len(validation_ds),
epochs=25,
callbacks=[checkpoint,early])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
plt.plot(alex6.history["accuracy"])
plt.plot(alex6.history['val_accuracy'])
plt.plot(alex6.history['loss'])
plt.plot(alex6.history['val_loss'])
plt.title("Model accuracy")
plt.ylabel("Value")
plt.xlabel("Epoch")
plt.legend(["Accuracy","Validation Accuracy","Loss","Validation Loss"])
plt.show()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
alex6.evaluate(test_ds)
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
Do warstw spłaszczonych, maxpooling i splotowych
model_drop = keras.models.Sequential([
keras.layers.Conv2D(filters=96, kernel_size=(11,11), strides=(4,4), activation='relu', input_shape=(227,227,3)),
keras.layers.Dropout(.5),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=256, kernel_size=(5,5), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.Dropout(.5),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Dropout(.5),
keras.layers.Flatten(),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dropout(.5),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dropout(.5),
keras.layers.Dense(10, activation='softmax')
])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
model_drop.compile(loss='sparse_categorical_crossentropy', optimizer=tf.optimizers.SGD(lr=.001), metrics=['accuracy'])
model_drop.summary()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
checkpoint = ModelCheckpoint("alex_7.h5", monitor='val_accuracy', verbose=1, save_best_only=True, save_weights_only=False, mode='auto', period=1)
early = EarlyStopping(monitor='val_accuracy', min_delta=0, patience=20, verbose=1, mode='auto')
alex7 = model_drop.fit_generator(
steps_per_epoch=len(train_ds),
generator=train_ds,
validation_data= validation_ds,
validation_steps=len(validation_ds),
epochs=25,
callbacks=[checkpoint,early])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
plt.plot(alex7.history["accuracy"])
plt.plot(alex7.history['val_accuracy'])
plt.plot(alex7.history['loss'])
plt.plot(alex7.history['val_loss'])
plt.title("Model accuracy")
plt.ylabel("Value")
plt.xlabel("Epoch")
plt.legend(["Accuracy","Validation Accuracy","Loss","Validation Loss"])
plt.show()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
alex7.evaluate(test_ds)
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
Batch Regularization
Bez dropoutu
model_batch = keras.models.Sequential([
keras.layers.Conv2D(filters=96, kernel_size=(11,11), strides=(4,4), activation='relu', input_shape=(227,227,3)),
keras.layers.BatchNormalization(),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Conv2D(filters=256, kernel_size=(5,5), strides=(1,1), activation='relu', padding="same"),
keras.layers.BatchNormalization(),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.BatchNormalization(),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.BatchNormalization(),
keras.layers.Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.BatchNormalization(),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Flatten(),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
model_batch.compile(loss='sparse_categorical_crossentropy', optimizer=tf.optimizers.SGD(lr=.001), metrics=['accuracy'])
model_batch.summary()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
checkpoint = ModelCheckpoint("alex_8.h5", monitor='val_accuracy', verbose=1, save_best_only=True, save_weights_only=False, mode='auto', period=1)
early = EarlyStopping(monitor='val_accuracy', min_delta=0, patience=20, verbose=1, mode='auto')
alex8 = model_batch.fit_generator(
steps_per_epoch=len(train_ds),
generator=train_ds,
validation_data= validation_ds,
validation_steps=len(validation_ds),
epochs=25,
callbacks=[checkpoint,early])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
plt.plot(alex8.history["accuracy"])
plt.plot(alex8.history['val_accuracy'])
plt.plot(alex8.history['loss'])
plt.plot(alex8.history['val_loss'])
plt.title("Model accuracy")
plt.ylabel("Value")
plt.xlabel("Epoch")
plt.legend(["Accuracy","Validation Accuracy","Loss","Validation Loss"])
plt.show()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
alex8.evaluate(test_ds)
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
Z dropoutem
model_batch_drop = keras.models.Sequential([
keras.layers.Conv2D(filters=96, kernel_size=(11,11), strides=(4,4), activation='relu', input_shape=(227,227,3)),
keras.layers.BatchNormalization(),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Conv2D(filters=256, kernel_size=(5,5), strides=(1,1), activation='relu', padding="same"),
keras.layers.BatchNormalization(),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.BatchNormalization(),
keras.layers.Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.BatchNormalization(),
keras.layers.Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), activation='relu', padding="same"),
keras.layers.BatchNormalization(),
keras.layers.MaxPool2D(pool_size=(3,3), strides=(2,2)),
keras.layers.Flatten(),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dropout(.5),
keras.layers.Dense(4096, activation='relu'),
keras.layers.Dropout(.5),
keras.layers.Dense(10, activation='softmax')
])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
model_batch_drop.compile(loss='sparse_categorical_crossentropy', optimizer=tf.optimizers.SGD(lr=.001), metrics=['accuracy'])
model_batch_drop.summary()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
checkpoint = ModelCheckpoint("alex_9.h5", monitor='val_accuracy', verbose=1, save_best_only=True, save_weights_only=False, mode='auto', period=1)
early = EarlyStopping(monitor='val_accuracy', min_delta=0, patience=20, verbose=1, mode='auto')
alex9 = model_batch_drop.fit_generator(
steps_per_epoch=len(train_ds),
generator=train_ds,
validation_data= validation_ds,
validation_steps=len(validation_ds),
epochs=25,
callbacks=[checkpoint,early])
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
plt.plot(alex9.history["accuracy"])
plt.plot(alex9.history['val_accuracy'])
plt.plot(alex9.history['loss'])
plt.plot(alex9.history['val_loss'])
plt.title("Model accuracy")
plt.ylabel("Value")
plt.xlabel("Epoch")
plt.legend(["Accuracy","Validation Accuracy","Loss","Validation Loss"])
plt.show()
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'
alex9.evaluate(test_ds)
[1;31mRunning cells with '/Users/jonas/.pyenv/versions/3.9.6/bin/python' requires ipykernel package. [1;31mRun the following command to install 'ipykernel' into the Python environment. [1;31mCommand: '/Users/jonas/.pyenv/versions/3.9.6/bin/python -m pip install ipykernel -U --force-reinstall'