File size: 2,076 Bytes
4577277
 
ee8a448
 
 
fea3a1e
4577277
 
fea3a1e
 
 
4577277
5dd0274
ee1b10f
fea3a1e
ee1b10f
 
fea3a1e
fd651b5
f37d0b8
 
4577277
fd651b5
 
4577277
ee8a448
cfd4aae
 
67d2f1c
a326ae9
4577277
67d2f1c
ee8a448
 
 
 
 
 
4577277
 
 
a326ae9
ee8a448
c837201
 
b3d21c8
c837201
65b5b33
c837201
 
cfd4aae
c837201
ee8a448
 
 
 
 
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
from distutils.command.upload import upload
import streamlit as st
from io import StringIO
from PIL import Image
import pandas as pd
import numpy as np
#import glob
#import os

import torch
import torch.nn as nn
#from torch.utils.data import Dataset, DataLoader
import torchvision.models as models
#from torchinfo import summary

#from sklearn.model_selection import StratifiedKFold
#from sklearn.metrics import accuracy_score

#from tqdm import tqdm
#import opencv-python
import cv2
import albumentations as A # Albumentations is a computer vision tool that boosts the performance of deep convolutional neural networks. (https://albumentations.ai/)
#import matplotlib.pyplot as plt
#import seaborn as sns
from albumentations.pytorch.transforms import ToTensorV2

id2class = {0: 'agricultural', 1: 'airplane', 2: 'baseballdiamond', 3: 'beach', 4: 'buildings', 5: 'chaparral', 6: 'denseresidential', 7: 'forest', 8: 'freeway', 9: 'golfcourse', 10: 'intersection', 11: 'mediumresidential', 12: 'mobilehomepark', 13: 'overpass', 14: 'parkinglot', 15: 'river', 16: 'runway', 17: 'sparseresidential', 18: 'storagetanks', 19: 'tenniscourt', 20: 'harbor'}

model = models.resnet50(pretrained=False)
model.fc = nn.Linear(2048, 21)
model.load_state_dict(torch.load('resnet_best.pth', map_location=torch.device('cpu')), strict=True)

st.title("some big ML function")

uploaded_file = st.file_uploader("Choose a file")

if uploaded_file is not None:
  if ".jpg" in uploaded_file.name or ".png" in uploaded_file.name:
    img = Image.open(uploaded_file)
    st.image(img)
    img = np.array(img)
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    
    cust_transform = A.Compose([A.Resize(height=256, width=256, p=1.0),ToTensorV2(p=1.0)], p=1.0)
    tensor = cust_transform(image=img)
    tensor = tensor['image'].float().resize(1,3,256,256)
    
    model.eval()
    custom_pred = model.forward(tensor).detach().numpy()
    custom_pred
    id2class[np.argmax(custom_pred)]
    
  elif ".csv" in uploaded_file.name:
    dataframe = pd.read_csv(uploaded_file)
    st.write(dataframe)