Manikanta-7013 commited on
Commit
ed6135c
·
verified ·
1 Parent(s): fb17475

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -38
app.py CHANGED
@@ -15,41 +15,38 @@ if uploaded_file is not None:
15
  # Display the uploaded image
16
  st.image(uploaded_file, caption='Uploaded Image.', use_column_width=True)
17
  st.write("")
18
-
19
- # Data preprocessing
20
- train_datagen = ImageDataGenerator(
21
- rescale=1./255,
22
- shear_range=0.2,
23
- zoom_range=0.2,
24
- horizontal_flip=True
25
- )
26
-
27
- # No need to load the model architecture, just load the weights
28
- cnn = tf.keras.models.Sequential([
29
- tf.keras.layers.Conv2D(filters=32, kernel_size=3, activation='relu', input_shape=[64, 64, 3]),
30
- tf.keras.layers.MaxPool2D(pool_size=2, strides=2),
31
- tf.keras.layers.Conv2D(filters=32, kernel_size=3, activation='relu'),
32
- tf.keras.layers.MaxPool2D(pool_size=2, strides=2),
33
- tf.keras.layers.Flatten(),
34
- tf.keras.layers.Dense(units=128, activation='relu'),
35
- tf.keras.layers.Dense(units=1, activation='sigmoid')
36
- ])
37
-
38
- # Compile the model
39
- cnn.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
40
-
41
- # Load the trained weights
42
- cnn.load_weights('cat_dog_classifier_weights.h5')
43
-
44
- # Make prediction
45
- test_image = image.load_img(uploaded_file, target_size=(64, 64))
46
- test_image = image.img_to_array(test_image)
47
- test_image = np.expand_dims(test_image, axis=0)
48
- result = cnn.predict(test_image)
49
-
50
- # Class indices
51
- class_indices = {0: 'cat', 1: 'dog'}
52
-
53
- # Predict
54
- prediction = 'dog' if result[0][0] == 1 else 'cat'
55
- st.write("Prediction:", prediction)
 
15
  # Display the uploaded image
16
  st.image(uploaded_file, caption='Uploaded Image.', use_column_width=True)
17
  st.write("")
18
+ train_datagen = ImageDataGenerator(rescale = 1./255,
19
+ shear_range = 0.2,
20
+ zoom_range = 0.2,
21
+ horizontal_flip = True)
22
+ training_set = train_datagen.flow_from_directory('dataset/training_set',
23
+ target_size = (64, 64),
24
+ batch_size = 32,
25
+ class_mode = 'binary')
26
+ test_datagen = ImageDataGenerator(rescale = 1./255)
27
+ test_set = test_datagen.flow_from_directory('dataset/test_set',
28
+ target_size = (64, 64),
29
+ batch_size = 32,
30
+ class_mode = 'binary')
31
+ cnn=tf.keras.models.Sequential()
32
+ cnn.add(tf.keras.layers.Conv2D(filters=32,kernel_size=3,activation='relu',input_shape=[64,64,3]))
33
+ cnn.add(tf.keras.layers.MaxPool2D(pool_size=2,strides=2))
34
+ cnn.add(tf.keras.layers.Conv2D(filters=32,kernel_size=3,activation='relu'))
35
+ cnn.add(tf.keras.layers.MaxPool2D(pool_size=2,strides=2))
36
+ cnn.add(tf.keras.layers.Flatten())
37
+ cnn.add(tf.keras.layers.Dense(units=128,activation='relu'))
38
+ cnn.add(tf.keras.layers.Dense(units=1,activation='sigmoid'))
39
+ cnn.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])
40
+ cnn.fit(x=training_set,validation_data=test_set,epochs=25)
41
+ import numpy as np
42
+ from keras.preprocessing import image
43
+ test_image=image.load_img('dataset/single_prediction/cat_or_dog_1.jpg',target_size=(64,64))
44
+ test_image=image.img_to_array(test_image)
45
+ test_image=np.expand_dims(test_image,axis=0)
46
+ result=cnn.predict(test_image)
47
+ training_set.class_indices
48
+ if result[0][0]==1:
49
+ prediction='dog'
50
+ else:
51
+ prediction='cat'
52
+ print(prediction)