From c67803a664ac3c10d85135c5a7ebc8a575b6135b Mon Sep 17 00:00:00 2001 From: x0905y Date: Sat, 15 Mar 2025 12:13:23 +0300 Subject: [PATCH] Update submission_template04.py Commit directly to the main branch Chen Xingyu --- Deep Learning/submission_template04.py | 47 ++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/Deep Learning/submission_template04.py b/Deep Learning/submission_template04.py index 498fa3e..a460e3d 100644 --- a/Deep Learning/submission_template04.py +++ b/Deep Learning/submission_template04.py @@ -5,11 +5,54 @@ class ConvNet(nn.Module): def __init__(self): - ... +super().__init__() + self.conv1 = nn.Conv2d(in_channels=3, out_channels=32, kernel_size=5) + self.pool1 = nn.MaxPool2d(kernel_size=2) + self.conv2 = nn.Conv2d(in_channels=32, out_channels=64, kernel_size=3) + self.pool2 = nn.MaxPool2d(kernel_size=2) + self.flatten = nn.Flatten() + self.fc1 = nn.Linear(64 * 6 * 6, 1024) + self.fc2 = nn.Linear(1024, 10) def forward(self, x): - ... +x = self.conv1(x) + x = F.relu(x) + x = self.pool1(x) + x = self.conv2(x) + x = F.relu(x) + x = self.pool2(x) + x = self.flatten(x) + x = self.fc1(x) + x = F.relu(x) + x = self.fc2(x) + return x def create_model(): + # Эта ячейка не должна выдавать ошибку. +# Если при исполнении ячейки возникает ошибка, то в вашей реализации нейросети есть баги. +img = torch.Tensor(np.random.random((32, 3, 32, 32))) +model = ConvNet() +out = model(img) +# conv1 +assert model.conv1.kernel_size == (5, 5), "НЕВЕРНЫЙ РАЗМЕР ЯДРА У conv1" +assert model.conv1.in_channels == 3, "НЕВЕРНЫЙ РАЗМЕР in_channels У conv1" +assert model.conv1.out_channels == 32, "НЕВЕРНЫЙ РАЗМЕР out_channels У conv1" + +# pool1 +assert model.pool1.kernel_size == (2), "НЕВЕРНЫЙ РАЗМЕР ЯДРА У pool1" + +# conv2 +assert model.conv2.kernel_size == (3, 3), "НЕВЕРНЫЙ РАЗМЕР ЯДРА У conv2" +assert model.conv2.in_channels == 32, "НЕВЕРНЫЙ РАЗМЕР in_channels У conv2" +assert model.conv2.out_channels == 64, "НЕВЕРНЫЙ РАЗМЕР out_channels У conv2" + +# pool2 +assert model.pool2.kernel_size == (2), "НЕВЕРНЫЙ РАЗМЕР ЯДРА У pool2" + +# fc1 +assert model.fc1.out_features == 1024, "НЕВЕРНЫЙ РАЗМЕР out_features У fc1" + +# fc2 +assert model.fc2.out_features == 10, "НЕВЕРНЫЙ РАЗМЕР out_features У fc2" return ConvNet()