Spaces:
Sleeping
Sleeping
modify model
Browse files
app.py
CHANGED
|
@@ -6,19 +6,19 @@ from torchvision import models, transforms
|
|
| 6 |
from torch.utils.data import DataLoader
|
| 7 |
from torchvision.datasets import ImageFolder
|
| 8 |
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
for param in vgg16.features.parameters():
|
| 13 |
param.requires_grad = False
|
| 14 |
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
|
|
|
| 18 |
|
| 19 |
# Load the model
|
| 20 |
-
model =
|
| 21 |
-
state_dict = torch.load('
|
| 22 |
model.load_state_dict(state_dict)
|
| 23 |
model.eval()
|
| 24 |
|
|
@@ -26,10 +26,10 @@ model.eval()
|
|
| 26 |
transform = transforms.Compose([
|
| 27 |
transforms.Resize((224, 224)),
|
| 28 |
transforms.ToTensor(),
|
| 29 |
-
transforms.Normalize(
|
| 30 |
])
|
| 31 |
|
| 32 |
-
classes = ('
|
| 33 |
|
| 34 |
def predict(image):
|
| 35 |
input_tensor = transform(image)
|
|
@@ -42,7 +42,7 @@ def predict(image):
|
|
| 42 |
max_value, predicted_class = torch.max(probabilities, 0)
|
| 43 |
return classes[predicted_class.item()], max_value.item() * 100
|
| 44 |
|
| 45 |
-
st.title('Vegetable Classification')
|
| 46 |
st.write('you can upload your image of veggies below')
|
| 47 |
|
| 48 |
uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
|
|
|
|
| 6 |
from torch.utils.data import DataLoader
|
| 7 |
from torchvision.datasets import ImageFolder
|
| 8 |
|
| 9 |
+
#define the model architecture
|
| 10 |
+
model_resnet = models.resnet18(weights='IMAGENET1K_V1')
|
| 11 |
+
for param in model_resnet.parameters():
|
|
|
|
| 12 |
param.requires_grad = False
|
| 13 |
|
| 14 |
+
# Parameters of newly constructed modules have requires_grad=True by default
|
| 15 |
+
num_ftrs = model_resnet.fc.in_features
|
| 16 |
+
model_resnet.fc = nn.Linear(num_ftrs, 15) #mengganti jumlah classifier sesuai output kelas
|
| 17 |
+
|
| 18 |
|
| 19 |
# Load the model
|
| 20 |
+
model = model_resnet
|
| 21 |
+
state_dict = torch.load('transfer_learning_resnet_15class.pth', map_location=torch.device('cpu'))
|
| 22 |
model.load_state_dict(state_dict)
|
| 23 |
model.eval()
|
| 24 |
|
|
|
|
| 26 |
transform = transforms.Compose([
|
| 27 |
transforms.Resize((224, 224)),
|
| 28 |
transforms.ToTensor(),
|
| 29 |
+
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
|
| 30 |
])
|
| 31 |
|
| 32 |
+
classes = ('Bean', 'Bitter_Gourd', 'Bottle_Gourd', 'Brinjal', 'Broccoli', 'Cabbage', 'Capsicum', 'Carrot', 'Cauliflower', 'Cucumber', 'Papaya', 'Potato', 'Pumpkin', 'Radish', 'Tomato')
|
| 33 |
|
| 34 |
def predict(image):
|
| 35 |
input_tensor = transform(image)
|
|
|
|
| 42 |
max_value, predicted_class = torch.max(probabilities, 0)
|
| 43 |
return classes[predicted_class.item()], max_value.item() * 100
|
| 44 |
|
| 45 |
+
st.title('Vegetable Classification for learning')
|
| 46 |
st.write('you can upload your image of veggies below')
|
| 47 |
|
| 48 |
uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
|