In [ ]:
import os, cv2
from keras.models import load_model
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
import tensorflow as tf
In [ ]:
path_to_model = '/home/dlab-user/model_1000.json'
path_to_weights = '/home/dlab-user/weigths_1000.h5'
In [ ]:
ROWS = 128
COLS = 128
CHANNELS = 3
TEST_DIR = '/home/dlab-user/test/'
all_image_names = os.listdir(TEST_DIR)
all_image_names.sort()
test_images = [TEST_DIR+i for i in all_image_names[6:11] + all_image_names[19:32] + all_image_names[33:34]]
def read_image(file_path):
img = cv2.imread(file_path, cv2.IMREAD_COLOR)
return cv2.resize(img, (ROWS, COLS), interpolation=cv2.INTER_CUBIC).reshape(ROWS, COLS, CHANNELS)
def prep_data(images):
count = len(images)
data = np.ndarray((count, ROWS, COLS, CHANNELS), dtype=np.uint8)
for i, image_file in enumerate(images):
image = read_image(image_file)
data[i] = image
return data
test = prep_data(test_images)
In [ ]:
with tf.device('/cpu:0'):
model = load_model(path_to_model)
model.load_weights(path_to_weights)
predictions = model.predict(test, verbose=2)
In [ ]:
plt.figure(figsize=(16, 12))
for i in range(0, 12):
plt.subplot(3, 4, i+1)
if predictions[i, 0] >= 0.5:
plt.title('{:.2%} Dog'.format(predictions[i][0]))
else:
plt.title('{:.2%} Cat'.format(1-predictions[i][0]))
plt.imshow(cv2.cvtColor(test[i], cv2.COLOR_BGR2RGB))
plt.axis('off')
plt.show()