ambujraj2001 commited on
Commit
e6a8804
1 Parent(s): 5027310
Files changed (6) hide show
  1. .gitattributes +1 -0
  2. app.py +33 -0
  3. main.py +20 -0
  4. model.sav +3 -0
  5. requirements.txt +4 -0
  6. resnet_architecture.png +0 -0
.gitattributes CHANGED
@@ -32,3 +32,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
32
  *.zip filter=lfs diff=lfs merge=lfs -text
33
  *.zst filter=lfs diff=lfs merge=lfs -text
34
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
32
  *.zip filter=lfs diff=lfs merge=lfs -text
33
  *.zst filter=lfs diff=lfs merge=lfs -text
34
  *tfevents* filter=lfs diff=lfs merge=lfs -text
35
+ *.sav filter=lfs diff=lfs merge=lfs -text
app.py ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from PIL import Image
3
+ from transformers import AutoImageProcessor
4
+ import torch
5
+ import joblib
6
+
7
+ with st.sidebar:
8
+ st.subheader('Image Classifier using ResNet50')
9
+ st.divider()
10
+ st.write('This is a image classification app using ResNet50. It is a state of the art model for image classification. It is a pretrained model which is trained on a large dataset of images. It can be used for classifying any image. It is a very powerful model and is very fast. It is also very accurate.')
11
+ image = Image.open('resnet_architecture.png')
12
+ st.image(image, caption='Bert Model')
13
+ st.code('App Built by Ambuj Raj',language='python')
14
+
15
+
16
+ st.title('Image Classifier using ResNet50')
17
+
18
+ uploaded_file = st.file_uploader("Choose a image", type=['png', 'jpeg', 'jpg'])
19
+ if uploaded_file is not None:
20
+ st.image(uploaded_file, width=300)
21
+ raw_image = Image.open(uploaded_file).convert('RGB')
22
+
23
+ if st.button('Classify Image'):
24
+ with st.spinner('Classifying Image...'):
25
+ processor = AutoImageProcessor.from_pretrained("microsoft/resnet-50")
26
+ loaded_model = joblib.load("model.sav")
27
+ inputs = processor(raw_image, return_tensors="pt")
28
+ with torch.no_grad():
29
+ logits = loaded_model(**inputs).logits
30
+ # model predicts one of the 1000 ImageNet classes
31
+ predicted_label = logits.argmax(-1).item()
32
+ st.success('Image Classified!')
33
+ st.write('Predicted Label is: ',loaded_model.config.id2label[predicted_label])
main.py ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import AutoImageProcessor, ResNetForImageClassification
2
+ import torch
3
+ from datasets import load_dataset
4
+ import joblib
5
+
6
+ dataset = load_dataset("huggingface/cats-image")
7
+ image = dataset["test"]["image"][0]
8
+ print(image)
9
+
10
+ processor = AutoImageProcessor.from_pretrained("microsoft/resnet-50")
11
+
12
+ loaded_model = joblib.load("model.sav")
13
+ inputs = processor(image, return_tensors="pt")
14
+
15
+ with torch.no_grad():
16
+ logits = loaded_model(**inputs).logits
17
+
18
+ # model predicts one of the 1000 ImageNet classes
19
+ predicted_label = logits.argmax(-1).item()
20
+ print(loaded_model.config.id2label[predicted_label])
model.sav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d7b213354ad1d09fe2385e2b4f720cd2e28a1449258f966d5d7e27da72891eaa
3
+ size 102632052
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ torch
2
+ transformers
3
+ joblib
4
+ streamlit
resnet_architecture.png ADDED