yoel commited on
Commit
302b2b5
·
1 Parent(s): 671fd83

Refactor: reorganiza etiquetas y corrige validación de archivos en la interfaz de evaluación

Browse files
Files changed (3) hide show
  1. etiquetas.txt +6 -6
  2. evaluation.py +1 -1
  3. models.py +29 -15
etiquetas.txt CHANGED
@@ -1,10 +1,10 @@
1
  dummy
 
 
2
  Ilustración
3
- Mujer joven
4
- Mujer mayor
5
- Niña
6
  Hombre joven
7
  Hombre mayor
8
- Niño
9
- Perro
10
- Gato
 
1
  dummy
2
+ Gato
3
+ Perro
4
  Ilustración
5
+ Niño
 
 
6
  Hombre joven
7
  Hombre mayor
8
+ Niña
9
+ Mujer joven
10
+ Mujer mayor
evaluation.py CHANGED
@@ -32,7 +32,7 @@ def evaluate_interface(model_file, num_clases, test_dataloader):
32
  return "Por favor, carga un archivo .safetensor"
33
 
34
  # Verificamos que el archivo sea .safetensor
35
- if not model_file.name.endswith(".safetensor") or not model_file.name.endswith(
36
  ".safetensors"
37
  ):
38
  return "Por favor, carga un archivo con extensión .safetensor o .safetensors"
 
32
  return "Por favor, carga un archivo .safetensor"
33
 
34
  # Verificamos que el archivo sea .safetensor
35
+ if not model_file.name.endswith(".safetensor") and not model_file.name.endswith(
36
  ".safetensors"
37
  ):
38
  return "Por favor, carga un archivo con extensión .safetensor o .safetensors"
models.py CHANGED
@@ -1,5 +1,4 @@
1
- 
2
- import torch
3
  import torch.nn as nn
4
  from torchvision import models
5
 
@@ -8,7 +7,7 @@ class Stem(nn.Module):
8
  def __init__(self):
9
  super(Stem, self).__init__()
10
  self.conv = nn.Sequential(
11
- nn.Conv2d(3, 64, kernel_size=7, stride=2),
12
  nn.MaxPool2d(kernel_size=3, stride=2),
13
  )
14
 
@@ -16,16 +15,31 @@ class Stem(nn.Module):
16
  x = self.conv(x)
17
  return x
18
 
 
19
  class ResidualBlock(nn.Module):
20
  def __init__(self, in_channels, out_channels, stride=1):
21
  super().__init__()
22
  self.conv1 = nn.Sequential(
23
- nn.Conv2d(in_channels, out_channels, kernel_size=3, stride=stride, padding=1, bias=False),
 
 
 
 
 
 
 
24
  nn.BatchNorm2d(out_channels),
25
  nn.LeakyReLU(inplace=True),
26
  )
27
  self.conv2 = nn.Sequential(
28
- nn.Conv2d(out_channels, out_channels, kernel_size=3, stride=1, padding=1, bias=False),
 
 
 
 
 
 
 
29
  nn.BatchNorm2d(out_channels),
30
  )
31
 
@@ -33,7 +47,9 @@ class ResidualBlock(nn.Module):
33
  nn.Identity()
34
  if in_channels == out_channels and stride == 1
35
  else nn.Sequential(
36
- nn.Conv2d(in_channels, out_channels, kernel_size=1, stride=stride, bias=False),
 
 
37
  nn.BatchNorm2d(out_channels),
38
  )
39
  )
@@ -47,13 +63,12 @@ class ResidualBlock(nn.Module):
47
  x += identity
48
  return self.act(x)
49
 
 
50
  class FromZero(nn.Module):
51
  def __init__(self, num_classes=10):
52
  super(FromZero, self).__init__()
53
- self.stem = Stem()
54
- self.layer1 = nn.Sequential(
55
- ResidualBlock(64, 64), ResidualBlock(64, 64)
56
- )
57
  self.layer2 = nn.Sequential(
58
  ResidualBlock(64, 128, stride=2), ResidualBlock(128, 128)
59
  )
@@ -61,15 +76,15 @@ class FromZero(nn.Module):
61
  ResidualBlock(128, 256, stride=2), ResidualBlock(256, 256)
62
  )
63
  self.layer4 = nn.Sequential(
64
- ResidualBlock(256, 512, stride=2), ResidualBlock(512, 512)
65
- ,nn.Dropout(0.2))
66
 
67
  self.flatten = nn.Flatten()
68
  self.avgpool = nn.AdaptiveAvgPool2d((1, 1))
69
  self.fc = nn.Sequential(
70
-
71
  nn.Linear(512, num_classes),
72
- )
 
73
  def forward(self, x):
74
  x = self.stem(x)
75
  x = self.layer1(x)
@@ -80,4 +95,3 @@ class FromZero(nn.Module):
80
  x = self.flatten(x)
81
  x = self.fc(x)
82
  return x
83
-
 
1
+ import torch
 
2
  import torch.nn as nn
3
  from torchvision import models
4
 
 
7
  def __init__(self):
8
  super(Stem, self).__init__()
9
  self.conv = nn.Sequential(
10
+ nn.Conv2d(3, 64, kernel_size=3, stride=2),
11
  nn.MaxPool2d(kernel_size=3, stride=2),
12
  )
13
 
 
15
  x = self.conv(x)
16
  return x
17
 
18
+
19
  class ResidualBlock(nn.Module):
20
  def __init__(self, in_channels, out_channels, stride=1):
21
  super().__init__()
22
  self.conv1 = nn.Sequential(
23
+ nn.Conv2d(
24
+ in_channels,
25
+ out_channels,
26
+ kernel_size=3,
27
+ stride=stride,
28
+ padding=1,
29
+ bias=False,
30
+ ),
31
  nn.BatchNorm2d(out_channels),
32
  nn.LeakyReLU(inplace=True),
33
  )
34
  self.conv2 = nn.Sequential(
35
+ nn.Conv2d(
36
+ out_channels,
37
+ out_channels,
38
+ kernel_size=3,
39
+ stride=1,
40
+ padding=1,
41
+ bias=False,
42
+ ),
43
  nn.BatchNorm2d(out_channels),
44
  )
45
 
 
47
  nn.Identity()
48
  if in_channels == out_channels and stride == 1
49
  else nn.Sequential(
50
+ nn.Conv2d(
51
+ in_channels, out_channels, kernel_size=1, stride=stride, bias=False
52
+ ),
53
  nn.BatchNorm2d(out_channels),
54
  )
55
  )
 
63
  x += identity
64
  return self.act(x)
65
 
66
+
67
  class FromZero(nn.Module):
68
  def __init__(self, num_classes=10):
69
  super(FromZero, self).__init__()
70
+ self.stem = nn.Sequential(Stem())
71
+ self.layer1 = nn.Sequential(ResidualBlock(64, 64), ResidualBlock(64, 64))
 
 
72
  self.layer2 = nn.Sequential(
73
  ResidualBlock(64, 128, stride=2), ResidualBlock(128, 128)
74
  )
 
76
  ResidualBlock(128, 256, stride=2), ResidualBlock(256, 256)
77
  )
78
  self.layer4 = nn.Sequential(
79
+ ResidualBlock(256, 512, stride=2), ResidualBlock(512, 512), nn.Dropout(0.2)
80
+ )
81
 
82
  self.flatten = nn.Flatten()
83
  self.avgpool = nn.AdaptiveAvgPool2d((1, 1))
84
  self.fc = nn.Sequential(
 
85
  nn.Linear(512, num_classes),
86
+ )
87
+
88
  def forward(self, x):
89
  x = self.stem(x)
90
  x = self.layer1(x)
 
95
  x = self.flatten(x)
96
  x = self.fc(x)
97
  return x