| import torch
|
|
|
| from torch import nn
|
| import torchvision
|
| from torchvision import transforms, datasets
|
| from torch.utils.data import DataLoader
|
| from tqdm.auto import tqdm
|
| from pathlib import Path
|
| from PIL import Image
|
|
|
| test_transformer = transforms.Compose([
|
| transforms.Resize((64,64)),
|
| transforms.ToTensor()
|
| ])
|
| class Tinyvgg(nn.Module):
|
| def __init__(self):
|
| super().__init__()
|
| self.firstlayer = nn.Sequential(
|
| nn.Conv2d(in_channels=3, out_channels=10, kernel_size=3, stride=1, padding=1),
|
| nn.ReLU(),
|
| nn.Conv2d(in_channels=10, out_channels=10, kernel_size=3, stride=1, padding=1),
|
| nn.ReLU(),
|
| nn.MaxPool2d(kernel_size=2, stride=2),
|
|
|
| )
|
| self.secondlayer = nn.Sequential(
|
| nn.Conv2d(in_channels=10, out_channels=10, kernel_size=3, stride=1, padding=1),
|
| nn.ReLU(),
|
| nn.Conv2d(in_channels=10, out_channels=10, kernel_size=3, stride=1, padding=1),
|
| nn.ReLU(),
|
| nn.MaxPool2d(kernel_size=2, stride=2),
|
| )
|
| self.classifier = nn.Sequential(
|
| nn.Flatten(),
|
| nn.Linear(in_features=2560,out_features=2),
|
| )
|
|
|
| def forward(self, x):
|
| return self.classifier(self.secondlayer(self.firstlayer(x)))
|
|
|
|
|
| device = torch.device("cuda")
|
|
|
| model12 = Tinyvgg()
|
| model12 = model12.to(device)
|
|
|
| model12.load_state_dict(torch.load("C:/pytorchprojesi/model12_weights.pth", map_location=device))
|
|
|
| model12.eval()
|
| with torch.inference_mode():
|
| image_path = "C:/Users/ceyhu/Downloads/fe.png"
|
| image = Image.open(image_path).convert('RGB')
|
| image = test_transformer(image).unsqueeze(0).to(device)
|
| output = model12(image)
|
| prediction = torch.softmax(output,dim=1)
|
| print(prediction)
|
|
|
|
|