agrisense / Data-raw /model.py
Sarthak
resnet9 is final model
0124e2b
Raw
History Blame Contribute Delete
1.43 kB
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader
import torchvision.transforms as transforms
from torchvision.datasets import ImageFolder
# Define the autoencoder architecture
class Autoencoder(nn.Module):
def __init__(self):
super(Autoencoder, self).__init__()
# Encoder layers
self.encoder = nn.Sequential(
nn.Conv2d(3, 16, kernel_size=3, stride=2, padding=1), # 3x256x256 -> 16x128x128
nn.LeakyReLU(inplace=True),
nn.Conv2d(16, 32, kernel_size=3, stride=2, padding=1), # 16x128x128 -> 32x64x64
nn.LeakyReLU(inplace=True),
nn.Conv2d(32, 64, kernel_size=3, stride=2, padding=1), # 32x64x64 -> 64x32x32
nn.LeakyReLU(inplace=True)
)
# Decoder layers
self.decoder = nn.Sequential(
nn.ConvTranspose2d(64, 32, kernel_size=3, stride=2, padding=1, output_padding=1), # 64x32x32 -> 32x64x64
nn.LeakyReLU(inplace=True),
nn.ConvTranspose2d(32, 16, kernel_size=3, stride=2, padding=1, output_padding=1), # 32x64x64 -> 16x128x128
nn.LeakyReLU(inplace=True),
nn.ConvTranspose2d(16, 3, kernel_size=3, stride=2, padding=1, output_padding=1), # 16x128x128 -> 3x256x256
nn.Tanh()
)
def forward(self, x):
x = self.encoder(x)
x = self.decoder(x)
return x