728x90
반응형
6x6x2 입력
import numpy as np
np.random.seed(1)
image=np.random.randint(5, size=(4,4,2))
print('image_0=\n', image[:,:,0])
print('image_1=\n', image[:,:,1])
filter=np.random.randint(5, size=(3,3,2))
print('filter_0=\n', filter[:,:,0])
print('filter_1=\n', filter[:,:,1])
image_pad=np.pad(image,((1,1),(1,1),(0,0)))
print('image_pad_0=\n', image_pad[:,:,0])
print('image_pad_1=\n', image_pad[:,:,1])
convolution=np.zeros((4,4))
for row in range(4):
for col in range(4):
window=image_pad[row:row+3, col:col+3]
convolution[row,col]=np.sum(window*filter)
print('convolution=\n', convolution)
6x6x2 입력 필터 늘리기
import numpy as np
np.random.seed(1)
image=np.random.randint(5, size=(4,4,2))
print('image_0=\n', image[:,:,0])
print('image_1=\n', image[:,:,1])
filter=np.random.randint(5, size=(3,3,2,2))
print('filter_00=\n', filter[:,:,0,0])
print('filter_10=\n', filter[:,:,1,0])
print('filter_01=\n', filter[:,:,0,1])
print('filter_11=\n', filter[:,:,1,1])
image_pad=np.pad(image,((1,1),(1,1),(0,0)))
print('image_pad_0=\n', image_pad[:,:,0])
print('image_pad_1=\n', image_pad[:,:,1])
convolution=np.zeros((4,4,2))
for fn in range(2): # 필터 개수
for row in range(4):
for col in range(4):
window=image_pad[row:row+3, col:col+3]
convolution[row,col,fn]=np.sum(window*filter[:,:,:,fn])
print('convolution_0=\n', convolution[:,:,0])
print('convolution_1=\n', convolution[:,:,1])
6x6x3 입력
import numpy as np
np.random.seed(1)
image=np.random.randint(5, size=(4,4,3))
print('image_0=\n', image[:,:,0])
print('image_1=\n', image[:,:,1])
print('image_2=\n', image[:,:,2])
filter=np.random.randint(5, size=(3,3,3,2))
print('filter_00=\n', filter[:,:,0,0])
print('filter_01=\n', filter[:,:,1,0])
print('filter_02=\n', filter[:,:,2,0])
print('filter_10=\n', filter[:,:,0,1])
print('filter_11=\n', filter[:,:,1,1])
print('filter_12=\n', filter[:,:,2,1])
image_pad=np.pad(image,((1,1),(1,1),(0,0)))
print('image_pad_0=\n', image_pad[:,:,0])
print('image_pad_1=\n', image_pad[:,:,1])
print('image_pad_2=\n', image_pad[:,:,2])
convolution=np.zeros((4,4,2))
for fn in range(2): # 필터 개수
for row in range(4):
for col in range(4):
window=image_pad[row:row+3, col:col+3]
convolution[row,col,fn]=np.sum(window*filter[:,:,:,fn])
print('convolution_0=\n', convolution[:,:,0])
print('convolution_1=\n', convolution[:,:,1])
* 필터의 깊이와 개수
* 입력의 깊이(이미지) = 필터의 갯수(필터의 깊이) = 출력의 깊이
* 필터의 갯수가 늘어났을 때, 출력의 깊이가 늘어나는 상황
728x90
반응형
'즐거운프로그래밍' 카테고리의 다른 글
[딥러닝] CNN 활용 맛보기 2 (0) | 2023.11.01 |
---|---|
[딥러닝] CNN 활용 맛보기 1 (1) | 2023.11.01 |
[딥러닝] 3x3x2 입력 이미지의 합성곱 (0) | 2023.11.01 |
[딥러닝] 필터 역할 살펴보기 - 연습문제 (0) | 2023.11.01 |
[딥러닝] 필터 역할 살펴보기(다양한 이미지 출력) (0) | 2023.11.01 |