import numpy as np import matplotlib.pyplot as plt import os import cv2 DATADIR = "I:/Datasets/CatsDogs" CATEGORIES = ["Dog", "Cat"] for category in CATEGORIES: path = os.path.join(DATADIR, category) #path to cats or digs dir for img in os.listdir(path): img_array = cv2.imread(os.path.join(path,img), cv2.IMREAD_GRAYSCALE) plt.imshow(img_array, cmap="gray") plt.show() break break --- IMG_SIZE = 60 new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE)) plt.imshow(new_array, cmap = 'gray') plt.show() --- training_data = [] def create_training_data(): for category in CATEGORIES: path = os.path.join(DATADIR, category) #path to cats or digs dir class_num = CATEGORIES.index(category) for img in os.listdir(path): try: img_array = cv2.imread(os.path.join(path,img), cv2.IMREAD_GRAYSCALE) new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE)) training_data.append([new_array, class_num]) except Exception as e: pass create_training_data() --- print(len(training_data)) --- import random random.shuffle(training_data) --- for sample in training_data: print(sample[1]) --- X = [] y = [] --- for features, label in training_data: X.append(features) y.append(label) x = np.array(X).reshape(-1, IMG_SIZE, IMG_SIZE, 1) --- import pickle pickle_out = open("X.pickle","wb") pickle.dump(x, pickle_out) pickle_out.close() pickle_out = open("y.pickle","wb") pickle.dump(y,pickle_out) pickle_out.close() --- pickle_in = open("X.pickle","rb") X = pickle.load(pickle_in) --- X[1] --- NEW DOCUMENT THINGY --- import tensorflow as tf import numpy as np import cv2 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten, Conv2D, MaxPooling2D import pickle X = pickle.load(open("X.pickle", "rb")) y = pickle.load(open("y.pickle", "rb")) X = X/255.0 model = Sequential() model.add(Conv2D(64, (3,3), input_shape = X.shape[1:])) model.add(Activation("relu")) model.add(MaxPooling2D(pool_size=(2,2))) model.add(Conv2D(64, (3,3))) model.add(Activation("relu")) model.add(MaxPooling2D(pool_size=(2,2))) model.add(Flatten()) model.add(Dense(64)) model.add(Dense(1)) model.add(Activation('sigmoid')) model.compile(loss="binary_crossentropy", optimizer="adam", metrics=['accuracy']) model.fit(X, y, batch_size=32, epochs=1, validation_split=0.1) --- IMG_SIZE = 60 userpic = cv2.imread("C:/Users/_reg/Pictures/My Photo's/148611_1703005778829_3639558_n.jpg") cv2.resize(userpic, (IMG_SIZE, IMG_SIZE)) print(userpic.shape) np.array(userpic).reshape(1, IMG_SIZE, IMG_SIZE, 1) model.predict(userpic)