Spaces:
Sleeping
Sleeping
File size: 2,713 Bytes
2bf5b40 49f719d 3f7f2ae 49f719d 3f7f2ae 0efbc53 e9bcaf8 c5eff95 a824ec6 3f7f2ae f17fcf3 3f7f2ae f17fcf3 e1305fa 3f7f2ae e1305fa 3f7f2ae a33f061 3f7f2ae a33f061 3f7f2ae f17fcf3 a33f061 f17fcf3 659e17f fd872c9 a33f061 f17fcf3 02086de f17fcf3 af2bc61 224c869 af2bc61 f17fcf3 ea0d7ac 8c9c7e5 ea0d7ac 19e33f2 ea0d7ac 42f4dd6 ea0d7ac f17fcf3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | import streamlit as st
import numpy as np
import matplotlib.pyplot as plt
import keras
from sklearn.preprocessing import MinMaxScaler
from keras.models import Model
from keras.layers import Conv2D
import cv2
import tensorflow as tf
model = keras.models.load_model("model.keras")
uploaded_img = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
options = ['1st Convolution', '2nd Convolution', '3rd Convolution']
selected_option = st.selectbox('Choose an option:', options)
conv_layers = [layer for layer in model.layers if isinstance(layer, Conv2D)]
fig = plt.figure(figsize=(12, 4))
layer_ind = options.index(selected_option)
# selected_layer = conv_layers[layer_ind]
scaler = MinMaxScaler()
# for i in range(3):
for j in range(6):
layer=conv_layers[layer_ind]
weights=layer.get_weights()[0][:,:,0,j]
norm_weights = scaler.fit_transform(weights)
plt.subplot(2,3,j+1)
plt.imshow(norm_weights,cmap='gray')
plt.title(f"Filters {j+1}")
plt.axis('off')
plt.tight_layout()
st.pyplot(fig)
if uploaded_img is not None:
#st.image(uploaded_img, caption="Uploaded Image", use_column_width=True)
file_bytes = np.frombuffer(uploaded_img.read(), np.uint8)
img = cv2.imdecode(file_bytes, cv2.IMREAD_GRAYSCALE)
img_resized = cv2.resize(img,(28,28),interpolation=cv2.INTER_AREA)
#img_norm = img_resized.astype('float32') / 255.0
input_img = img_resized.reshape(1,28,28,1)
st.image(img_norm, caption="Uploaded Image (Resized to 28x28)", use_container_width =True, channels="GRAY")
#layer_ind = options.index(selected_option)
selected_layer = conv_layers[layer_ind]
#func_model = Model(inputs = model.layers[0].input, outputs = model.selected_layer.output)
func_model = Model(inputs = model.layers[0].input, outputs = selected_layer.output)
fm = func_model.predict(input_img)
fm = fm[0]
if layer_ind == 0:
fig1 = plt.figure(figsize=(12, 4))
for i in range(6):
plt.subplot(2, 3, i + 1)
plt.imshow(fm[:, :, i], cmap='gray')
plt.title(f"Feature Map {i+1}")
plt.axis('off')
elif layer_ind == 1:
fig1 = plt.figure(figsize=(25, 15))
for i in range(16):
plt.subplot(2, 8, i + 1)
plt.imshow(fm[:, :, i], cmap='gray')
plt.title(f"Feature Map {i+1}")
plt.axis('off')
elif layer_ind == 2:
fig1 = plt.figure(figsize=(100, 50))
for i in range(120):
plt.subplot(30, 4, i + 1)
plt.imshow(fm[:, :, i],cmap="gray")
plt.title(f"Feature Map {i+1}")
plt.axis('off')
plt.tight_layout()
st.pyplot(fig1)
|