yasir2 commited on
Commit
072a194
·
verified ·
1 Parent(s): d3956b0

Upload a6_model_yasir.py

Browse files
Files changed (1) hide show
  1. a6_model_yasir.py +67 -0
a6_model_yasir.py ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ import torch.nn as nn
3
+ import torch.optim as optim
4
+ import torchvision
5
+ import torchvision.transforms as transforms
6
+ from torchvision import datasets, transforms
7
+ import os
8
+ from torchvision.datasets import ImageFolder
9
+
10
+
11
+ class model(nn.Module):
12
+ def __init__(self):
13
+ super(model, self).__init__() # Use the correct class name
14
+ self.conv1 = nn.Conv2d(3, 64, kernel_size=5, padding=2, stride=1)
15
+ self.relu1 = nn.ReLU()
16
+ self.pool1 = nn.MaxPool2d(kernel_size=2, stride=2)
17
+
18
+ self.conv2 = nn.Conv2d(64, 128, kernel_size=5, padding=2)
19
+ self.relu2 = nn.ReLU()
20
+ self.pool2 = nn.MaxPool2d(kernel_size=2, stride=2)
21
+
22
+ self.conv3 = nn.Conv2d(128, 256, kernel_size=3, padding=1)
23
+ self.relu3 = nn.ReLU()
24
+ self.pool3 = nn.MaxPool2d(kernel_size=2, stride=2)
25
+
26
+ self.conv4 = nn.Conv2d(256, 384, kernel_size=3, padding=1)
27
+ self.relu4 = nn.ReLU()
28
+
29
+ self.conv5 = nn.Conv2d(384, 256, kernel_size=3, padding=1)
30
+ self.relu5 = nn.ReLU()
31
+
32
+ self.adaptive_pool = nn.AdaptiveAvgPool2d((3, 3))
33
+
34
+ self.flatten = nn.Flatten()
35
+
36
+ self.dropout1 = nn.Dropout(p=0.1)
37
+ self.fc1 = nn.Linear(256 * 3 * 3, 1024)
38
+ self.relu6 = nn.ReLU()
39
+
40
+ self.dropout2 = nn.Dropout(p=0.1)
41
+ self.fc2 = nn.Linear(1024, 512)
42
+ self.relu7 = nn.ReLU()
43
+
44
+ self.fc3 = nn.Linear(512, 200)
45
+
46
+ self.apply(self._init_weights)
47
+
48
+ def _init_weights(self, module):
49
+ if isinstance(module, nn.Linear):
50
+ module.weight.data.normal_(mean=0.0, std=0.01)
51
+ if module.bias is not None:
52
+ module.bias.data.zero_()
53
+
54
+ def forward(self, x):
55
+ x = self.relu1(self.conv1(x))
56
+ x = self.pool1(x)
57
+ x = self.relu2(self.conv2(x))
58
+ x = self.pool2(x)
59
+ x = self.relu3(self.conv3(x))
60
+ x = self.pool3(x)
61
+ x = self.relu4(self.conv4(x))
62
+ x = self.relu5(self.conv5(x))
63
+ x = self.adaptive_pool(x)
64
+ x = self.flatten(x)
65
+ x = self.dropout1(self.relu6(self.fc1(x)))
66
+ x = self.dropout2(self.relu7(self.fc2(x)))
67
+ return x