File size: 2,801 Bytes
3744477
dea58e0
 
8d5b066
3744477
dea58e0
8d5b066
 
 
 
 
 
 
 
 
 
dea58e0
 
 
0ec8502
 
 
 
dea58e0
 
 
 
8d5b066
 
dea58e0
8d5b066
dea58e0
 
 
 
8d5b066
 
dea58e0
8d5b066
dea58e0
 
8d5b066
dea58e0
 
8d5b066
 
dea58e0
8d5b066
dea58e0
 
 
 
8d5b066
 
dea58e0
8d5b066
dea58e0
 
 
 
8d5b066
 
 
 
 
dea58e0
8d5b066
 
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
import streamlit as st
from keras.datasets import mnist
from sklearn.preprocessing import MinMaxScaler
from keras.models import Sequential,Model
import matplotlib.pyplot as plt
m = MinMaxScaler()
from tensorflow import keras
model = keras.models.load_model('cnn_lenet.keras')
from keras.layers import Conv2D,MaxPooling2D,AveragePooling2D,InputLayer,Dense,Flatten
option = st.sidebar.selectbox("Datasets",["Select dataset","Hand Writen Digit Dataset"])
if option == "Hand Writen Digit Dataset":
    (x_train,y_train),(x_test,y_test) = mnist.load_data()
    st.write("Successfully Load the Dataset")
if st.button("Train"):
    fig, axs = plt.subplots(6, 1, figsize=(8, 6))
    col1,col2,col3,col4,col5,col6 = st.columns(6)
    with col1:
        st.write("Filters")
        for i in range(6):
            axs[i].imshow(
                m.fit_transform(model.layers[0].weights[0][:, :, :, i][:, :, 0]),
                cmap="gray"
            )
            axs[i].axis("off")
        st.pyplot(fig)
    with col2:
        st.write("Conv2D Layer-1")
        sub = Model(inputs=model.inputs[0],outputs=model.layers[0].output)
        fig,ax = plt.subplots(6,1,figsize=(8,6))
        for i in range(6):
            ax[i].imshow(sub.predict(x_train[0:1,:].reshape(1,28,28,1))[0,:,:,i],cmap="gray")
            ax[i].axis("off")
        st.pyplot(fig)
    with col3:
        st.write("Average Pooling Layer-1")
        max1 = Model(inputs=model.inputs[0],outputs=model.layers[1].output)
        fig,ax1 = plt.subplots(6,1,figsize=(8,6))
        for i in range(6):
            ax1[i].imshow(max1.predict(x_train[0:1,:].reshape(1,28,28,1))[0,:,:,i],cmap="gray")
            ax1[i].axis("off")
        st.pyplot(fig)
    
    with col4:
        st.write("Conv2D Layer-2")
        sub1 = Model(inputs=model.inputs[0],outputs=model.layers[2].output)
        fig,ax2 = plt.subplots(16,1,figsize=(8,6))
        for i in range(16):
            ax2[i].imshow(sub1.predict(x_train[0:1,:].reshape(1,28,28,1))[0,:,:,i],cmap="gray")
            ax2[i].axis("off")
        st.pyplot(fig)
    with col5:
        st.write("Average Pooling Layer-2")
        max2 = Model(inputs=model.inputs[0],outputs=model.layers[3].output)
        fig,ax3 = plt.subplots(16,1,figsize=(8,6))
        for i in range(16):
            ax3[i].imshow(max2.predict(x_train[0:1,:].reshape(1,28,28,1))[0,:,:,i],cmap="gray")
            ax3[i].axis("off")
        st.pyplot(fig)
    with col6:
        st.write("Conv2D Layer-3")
        sub3 = Model(inputs=model.inputs[0],outputs=model.layers[4].output)
        fig,ax4 = plt.subplots(120,1,figsize=(8,6))
        for i in range(120):
            ax4[i].imshow(sub3.predict(x_train[0:1,:].reshape(1,28,28,1))[0,:,:,i],cmap="gray")
            ax4[i].axis("off")
        st.pyplot(fig)