2022.06.07 CNN

정성우·2022년 6월 7일
0

학습한 내용

import torch
import torch.nn as nn
import torch.nn.functional as F


class CNN(nn.Module):
    def __init__(self):
        super(CNN, self).__init__()
        self.conv1 = nn.Conv2d(in_channels=1, out_channels=3, kernel_size=5, stride=1)
        self.conv2 = nn.Conv2d(in_channels=3, out_channels=10, kernel_size=5, stride=1)
        self.fc1 = nn.Linear(10 * 12 * 12, 50)
        self.fc2 = nn.Linear(50, 10)

    def forward(self, x):
        print("연산 전", x.size())
        x = F.relu(self.conv1(x))
        print("conv1 연산 후", x.size())
        x = F.relu(self.conv2(x))
        print("conv2 연산 후", x.size())
        x = x.view(-1, 10 * 12 * 12)
        print("차원 감소 후", x.size())
        x = F.relu(self.fc1(x))
        print("fc1 연산 후", x.size())
        x = self.fc2(x)
        print("fc2 연산 후", x.size())
        return x


cnn = CNN()
output = cnn(torch.randn(10, 1, 20, 20))  # Input Size: (10, 1, 20, 20)

실행결과
Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros')

학습한 내용 중 어려웠던 점 또는 해결못한 것들

해결방법 작성

학습 소감
이렇게 이미지를 행렬로 만들어서 분류할수있다는게 신기하다

0개의 댓글