Spaces:
Sleeping
Sleeping
File size: 3,415 Bytes
11b818b |
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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
#!/usr/bin/env python
# coding: utf-8
# In[29]:
from PIL import Image
import torchvision.transforms.functional as TF
from torchvision import transforms
import torchvision.models as models
from torchvision.datasets import ImageFolder
from torch.utils.data import DataLoader
from torch.utils.data import DataLoader, random_split
import torchvision
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
pd.DataFrame.iteritems = pd.DataFrame.items
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
import gradio as gr
# In[11]:
classes = ['Fake_Copilot', 'Fake_DreamStudio', 'Fake_Gemini', 'Real']
# In[16]:
d_path = '/Users/robb4/OneDrive/Desktop/DATA SCIENCE MPS/Summer 24/Deep Learning/Final Project/dense.pth'
g_path = '/Users/robb4/OneDrive/Desktop/DATA SCIENCE MPS/Summer 24/Deep Learning/Final Project/google.pth'
r_path = '/Users/robb4/OneDrive/Desktop/DATA SCIENCE MPS/Summer 24/Deep Learning/Final Project/resnet.pth'
v_path = '/Users/robb4/OneDrive/Desktop/DATA SCIENCE MPS/Summer 24/Deep Learning/Final Project/vgg13.pth'
# In[17]:
dense_net = models.densenet161()
dense_net.classifier = nn.Linear(2208, len(classes), bias = True)
dense_net.load_state_dict(torch.load(d_path))
# In[18]:
googlenet = models.googlenet()
googlenet.fc = nn.Linear(1024, len(classes), bias = True)
googlenet.load_state_dict(torch.load(g_path))
# In[19]:
vgg13 = models.vgg13()
vgg13.classifier[6] = nn.Linear(4096, len(classes), bias = True)
vgg13.load_state_dict(torch.load(v_path))
# In[20]:
res_net = models.resnet101()
res_net.fc = nn.Linear(2048, len(classes), bias = True)
res_net.load_state_dict(torch.load(r_path))
# In[24]:
transform = transforms.Compose([transforms.Resize((224, 224)),transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])])
# In[27]:
def one_prediction(img):
preds = {classname: 0 for classname in classes}
#img = Image.open(path).convert('RGB')
img = transform(img)
img.unsqueeze_(0)
models = [dense_net, googlenet, vgg13, res_net]
#dense_net.eval()
with torch.no_grad():
for model in models:
model.eval()
output = model(img)
_, predicted = torch.max(output.data, 1)
preds[classes[predicted]] += 1
for classname, count in preds.items():
chance = float(count) / len(classes)
preds[classname] = chance
return preds
# In[28]:
#path = 'C:/Users/robb4/OneDrive/Desktop/DATA SCIENCE MPS/Summer 24/Deep Learning/Final Project/One/24June Batch (80).png'
#img = Image.open(path).convert('RGB')
#one_prediction(img)
# In[30]:
title = "Real vs Fake Image Classification"
description = "Test."
article = "Test"
examples = [['C:/Users/robb4/OneDrive/Desktop/DATA SCIENCE MPS/Summer 24/Deep Learning/Final Project/One/24June Batch (80).png'],
['C:/Users/robb4/OneDrive/Desktop/DATA SCIENCE MPS/Summer 24/Deep Learning/Final Project/One/antarctica_0231.png']]
demo = gr.Interface(fn=one_prediction,
inputs=gr.Image(type="pil"),
outputs=gr.Label(num_top_classes=4, label="Predictions"),
examples=examples,
title=title,
description=description,
article=article)
demo.launch(debug=False,
share=True)
# In[ ]:
|