즐거운프로그래밍

[딥러닝] 알고리즘 CNN신경망 입력 필터 늘리기

수수께끼 고양이 2023. 10. 31. 15:48
728x90
반응형

 

import numpy as np

np.random.seed(1)

H,W,C=56,156,48
F=128

image=np.random.randint(5,size=(H,W,C))
print(image.shape)

filter=np.random.randint(5,size=(F,3,3,C))
print('filter_0=\n', filter[0])
print('filter_0=\n', filter[1])

image_pad=np.pad(image,((1,1),(1,1),(0,0)))
print('image_pad=\n', image_pad)

convolution=np.zeros((H,W,F))

for fn in range(F):
    for row in range(H):
        for col in range(W):
            window=image_pad[row:row+3,col:col+3]
            convolution[row,col,fn]=np.sum(window*filter[fn]) # ...=:,:,:=fn
            
print('convolution_0=\n',convolution[0])
print('convolution_1=\n',convolution[1])

max_pooled=np.zeros((H//2,W//2,F))

for fn in range(F):
    for row in range(H//2):
        for col in range(W//2):
            window=convolution[2*row+2:2*row+2,2*col:2*col+2,fn]
            max_pooled[row,col,fn]=np.max(window)

print('max_pooled_0=\n',max_pooled[0])
print('max_pooled_1=\n',max_pooled[1])

 

 

 

 

728x90
반응형