하루 하루
펭귄브로의 3분 딥러닝 파이토치맛 _ 4일차 본문
CNN
이미지를 볼 때 뇌가 특정 부위만 자극된다는 사실에서 착안하여 만든 모델
필터 / Kernel
- 이미지의 특징을 추출한다.
- 컨볼루션 계츨 하나에 여러 개가 존재할 수 있다.
- (홀수 정수 ) * (홀수 정수 ) 크기가 보통 사용된다.
Stride
- 필터가 이미지에 적용될 때 한 번에 얼마나 이동하는지에 대한 갑사
- Stride의 크긱가 커질수록 출력 Tensor의 크기는 작아진다.
Feature Map
컨볼루션을 거쳐 만들어지는 이미지
Pooling
- 과적합의 위험을 줄이기 위해 Convolution에서 추출한 특징을 값 하나로 추려내서 특징 맵의 크기를 줄이고
중요한 특징을 강조하는 역할
- 필터가 지나갈 떄 마다 평균이나 최댓값을 가져오는 연산 수행
tf.nn.max_pool2d( )
tf.nn.max_pool2d( input, ksize, strides, padding, data_format='NHWC', name=None )
- input: Tensor 형식 ( data_format ) .
- ksize: 입력 Tensor의 각 차원에 대한 윈도우 크기
- strides: 슬라이딩 윈도우의 보폭
- padding: 'VALID' / 'SAME'
- data_format: 문자열( 'NHWC', 'NCHW'및 'NCHW_VECT_C' 지원 )
- name: 조작 이름 ( option ) return Tensor의해 지정된 형식 data_format ( The max pooled output tensor )
1. 컨볼루션
class Net(nn.Module):
def __init__(self):
self.conv1 = nn.Conv2d(1,10,kernel_size = 5)
def forward(self, x):
x = self.conv1(x)
2. 풀링
class Net(nn.Module):
def forward(self, x):
x = F.max_pool2d(x,2)
3. 드롭아웃
class Net(nn.Module):
def __init__(self):
self.conv1_drop = nn.Dropout2d() #드롭아웃
def forward(self, x):
x = self.conv2_drop(x)
4. 일반 신경망과 활성화 함수 relu
class Net(nn.Module):
def __init__(self):
self.fc1 = nn.Linear(320,50)
def forward(self, x):
x = F.relu(self.fc1(x))
return F.log_softmax(x, dim = 1)
'IT > Artificial intelligence' 카테고리의 다른 글
Batch Normalization ( 배치 정규화 ) (0) | 2020.04.20 |
---|---|
펭귄브로의 3분 딥러닝 파이토치맛 _ 5일차 (0) | 2020.04.20 |
펭귄브로의 3분 딥러닝 파이토치맛 _ 3일차 (0) | 2020.04.17 |
TORCH.NN (0) | 2020.04.17 |
펭귄브로의 3분 딥러닝 파이토치맛 _ 2일차 (0) | 2020.04.17 |