|
| 1 | +import tensorflow as tf |
| 2 | +from tensorflow import keras |
| 3 | +import pickle |
| 4 | +model=tf.keras.models.Sequential([tf.keras.layers.Conv2D(16,(3,3),activation='relu',input_shape=(200,200,3)), |
| 5 | + tf.keras.layers.MaxPooling2D(2,2), |
| 6 | + tf.keras.layers.Conv2D(16,(3,3),activation='relu'), |
| 7 | + tf.keras.layers.MaxPooling2D(2,2), |
| 8 | + tf.keras.layers.Conv2D(16,(3,3),activation='relu'), |
| 9 | + tf.keras.layers.MaxPooling2D(2,2), |
| 10 | + tf.keras.layers.Flatten(), |
| 11 | + tf.keras.layers.Dense(512,activation='relu'), |
| 12 | + tf.keras.layers.Dense(1,activation="sigmoid") |
| 13 | + ]) |
| 14 | +model.summary() |
| 15 | +from tensorflow.keras.optimizers import RMSprop |
| 16 | +model.compile(optimizer=RMSprop(lr=0.001),loss='binary_crossentropy',metrics=['acc']) |
| 17 | +from tensorflow.keras.preprocessing.image import ImageDataGenerator |
| 18 | +train_datagen=ImageDataGenerator(rescale=1/255) |
| 19 | +train_generator=train_datagen.flow_from_directory('E:/ARYAN/Desktop/python_tensorflow/Classification_human-or-horse', |
| 20 | + target_size=(200,200), |
| 21 | + batch_size=222, |
| 22 | + class_mode='binary') |
| 23 | +model.fit_generator(train_generator,steps_per_epoch=6,epochs=1,verbose=1) |
| 24 | +filename="myTf1.sav" |
| 25 | +pickle.dump(model,open(filename,'wb')) |
| 26 | + |
| 27 | +from tkinter import Tk |
| 28 | +from tkinter.filedialog import askopenfilename |
| 29 | +from keras.preprocessing import image |
| 30 | +import numpy as np |
| 31 | +import cv2 |
| 32 | + |
| 33 | +Tk().withdraw() |
| 34 | +filename = askopenfilename() |
| 35 | +print(filename) |
| 36 | +img = image.load_img(filename, target_size=(200, 200)) |
| 37 | +x = image.img_to_array(img) |
| 38 | +x = np.expand_dims(x, axis=0) |
| 39 | +images = np.vstack([x]) |
| 40 | +classes = model.predict(images, batch_size=10) |
| 41 | +print(classes[0]) |
| 42 | +if classes[0]>0.5: |
| 43 | + print(filename + " is a human") |
| 44 | +else: |
| 45 | + print(filename + " is a horse") |
| 46 | + |
0 commit comments