Download utils.py from hudsonma/lenet5: direct link, hf CLI and curl.
- Browser
- Download file 1.87 kB
-
https://huggingface.co/spaces/hudsonma/lenet5/resolve/main/utils.py
- Command line
-
hf download hf://spaces/hudsonma/lenet5/utils.py
-
curl -L -o utils.py https://huggingface.co/spaces/hudsonma/lenet5/resolve/main/utils.py
1.87 kB
| import os | |
| import torch | |
| from torch import nn, optim | |
| from torch.nn import functional as F | |
| from torchvision import datasets, transforms | |
| from torchvision.transforms.functional import to_pil_image | |
| import PIL | |
| import matplotlib.pyplot as plt | |
| import numpy as np | |
| import pandas as pd | |
| from sklearn.metrics import accuracy_score | |
| arquivo = 'lenet-modular2024-06-26.pt' | |
| class Lenet5Modular(nn.Module): | |
| def __init__(self): | |
| super(Lenet5Modular,self).__init__() | |
| self.conv1 = nn.Sequential( | |
| nn.Conv2d(in_channels=3,out_channels=6,kernel_size=(5,5),stride=(1,1)), | |
| nn.Tanh(), | |
| nn.AvgPool2d(kernel_size=(2,2),stride=(2,2)) | |
| ) | |
| self.conv2 = nn.Sequential( | |
| nn.Conv2d(in_channels=6,out_channels=16,kernel_size=(5,5),stride=(1,1)), | |
| nn.Tanh(), | |
| nn.AvgPool2d(kernel_size=(2,2),stride=(2,2)) | |
| ) | |
| self.conv3 = nn.Sequential( | |
| nn.Conv2d(in_channels=16,out_channels=120,kernel_size=(5,5),stride=(1,1)), | |
| nn.Tanh() | |
| ) | |
| self.flat = nn.Flatten() | |
| self.linear1 = nn.Sequential( | |
| nn.Linear(120,84), | |
| nn.Tanh() | |
| ) | |
| self.linear2 = nn.Linear(84,10) | |
| def forward(self,x): | |
| x = self.conv1(x) | |
| x = self.conv2(x) | |
| x = self.conv3(x) | |
| x = self.flat(x) | |
| x = self.linear1(x) | |
| x = self.linear2(x) | |
| return x | |
| modelo = Lenet5Modular() | |
| # modelo.load_state_dict(torch.load(arquivo)) | |
| modelo.cpu() | |
| a = torch.rand(1, 3, 32, 32) | |
| b = modelo(a) | |
| b.size() | |
| # Função para criar o transformador | |
| def create_transformer(): | |
| return transforms.Compose([ | |
| transforms.Resize((32, 32)), # Redimensionar para 32x32 | |
| transforms.RandomHorizontalFlip(), | |
| transforms.RandomRotation(10), | |
| transforms.RandomAffine(0, shear=10, scale=(0.8,1.2)), | |
| transforms.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2), | |
| transforms.ToTensor() | |
| ]) |