added review sql database

This commit is contained in:
2026-05-12 17:56:31 +02:00
parent 58af9f0f82
commit 941cfba332
8 changed files with 124 additions and 29 deletions
+20 -9
View File
@@ -5,6 +5,7 @@ from torchvision import datasets, transforms
from torch.utils.data import DataLoader, random_split
import matplotlib.pyplot as plt
from util import TransformedSubset, visualizeData
from bird_cnn import Bird_CNN, sample, trainCNN
from enum import Enum
@@ -12,7 +13,7 @@ from enum import Enum
from PIL import Image
SAVE_PATH = "./saved_models"
IMAGE_SIZE = 64
IMAGE_SIZE = 128
class bird_species(Enum):
Common_Kingfisher = 0
@@ -23,24 +24,34 @@ class bird_species(Enum):
Ruddy_Shelduck = 5
Sarus_Crane = 6
transform = transforms.Compose([
transform_augemnt = transforms.Compose([
transforms.RandomAffine(
degrees=35, # no rotation
translate=(0.2, 0.2) # shift up to 20% horizontally/vertically
),
transforms.RandomHorizontalFlip(p=0.5),
transforms.RandomRotation(35),
transforms.Resize(IMAGE_SIZE),
transforms.CenterCrop(IMAGE_SIZE),
transforms.ToTensor()
])
dataset = datasets.ImageFolder("data/CUB_200_2011/images", transform=transform)
transform = transforms.Compose([
transforms.Resize(IMAGE_SIZE),
transforms.CenterCrop(IMAGE_SIZE),
transforms.ToTensor()
])
dataset = datasets.ImageFolder("data/CUB_200_2011/images")
train_size = int(0.8 * len(dataset))
val_size = len(dataset) - train_size
train_dataset, val_dataset = random_split(dataset, [train_size, val_size])
train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)
val_loader = DataLoader(val_dataset, batch_size=32, shuffle=False)
train_subset, val_subset = random_split(dataset, [train_size, val_size])
train_dataset = TransformedSubset(train_subset, transform_augemnt)
val_dataset = TransformedSubset(val_subset, transform)
train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)
val_loader = DataLoader(val_dataset, batch_size=64, shuffle=False)
device = torch.device("cpu") if not torch.cuda.is_available() else torch.device("cuda:0")
print("Using device", device)
@@ -50,7 +61,7 @@ model.to(device)
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3, weight_decay=1e-4)
loss_module = nn.CrossEntropyLoss()
trainCNN(model, optimizer, loss_module, train_loader, val_loader, device, 50, SAVE_PATH=SAVE_PATH, save=True)
trainCNN(model, optimizer, loss_module, train_loader, val_loader, device, 500, SAVE_PATH=SAVE_PATH, save=True)
exit()
image_path = "test1.jpg"