Convolutional Neural Network
Convolutional Neural Network
tf.__version__
'2.11.0'
cnn
<keras.engine.sequential.Sequential at 0x22523123700>
Step 1 - Convolution
cnn.add(tf.keras.layers.Conv2D(filters=32, kernel_size=3,
activation='relu', input_shape=[64, 64, 3]))
cnn
<keras.engine.sequential.Sequential at 0x22523123700>
Step 2 - Pooling
cnn.add(tf.keras.layers.MaxPool2D(pool_size=2, strides=2))
cnn
<keras.engine.sequential.Sequential at 0x22523123700>
Step 3 - Flattening
cnn.add(tf.keras.layers.Flatten())
cnn
<keras.engine.sequential.Sequential at 0x22523123700>
Training the CNN on the Training set and evaluating it on the Test set
cnn.fit(x = training_set, validation_data = test_set, epochs = 3)
Epoch 1/3
63/63 [==============================] - 85s 1s/step - loss: 0.6871 -
accuracy: 0.5540 - val_loss: 0.6532 - val_accuracy: 0.6060
Epoch 2/3
63/63 [==============================] - 69s 1s/step - loss: 0.6314 -
accuracy: 0.6403 - val_loss: 0.5986 - val_accuracy: 0.6775
Epoch 3/3
63/63 [==============================] - 68s 1s/step - loss: 0.5871 -
accuracy: 0.6967 - val_loss: 0.5608 - val_accuracy: 0.7150
<keras.callbacks.History at 0x22523122410>
test_image
test_image = image.img_to_array(test_image)
result = cnn.predict(test_image)
result
array([[1.]], dtype=float32)
training_set.class_indices
{'cats': 0, 'dogs': 1}
if result[0][0] == 1:
prediction = 'dog'
else:
prediction = 'cat'
print(prediction)
dog
import cv2