풀링
def pooling(self, data, pooling_size):
"""
input : 입력 데이터
pooling_size : pooling size
"""
self.pool_result = []
pooling_matrix = self.pad.padding(data, (data.shape[0] % pooling_size))
for col in range(0, pooling_matrix.shape[0], pooling_size):
for row in range(0, pooling_matrix.shape[1], pooling_size):
pool_arr = []
for pooling_col in range(pooling_size):
for pooling_row in range(pooling_size):
pool_arr.append(pooling_matrix[pooling_col + col, pooling_row + row])
self.pool_result.append(max(pool_arr))
# 연산 결과를 크기에 맞게 바꿔준다.
return np.array(self.pool_result).reshape(int(pooling_matrix.shape[0] / pooling_size), -1)
풀링의 시행 전 입력 데이터와 풀링,
'ml_framework' 카테고리의 다른 글
gradient_descent(momentum) (0) | 2023.05.02 |
---|---|
gradient_descent(1) (0) | 2023.05.02 |
padding (0) | 2023.04.28 |
cnn_layer (0) | 2023.04.27 |
cnn (0) | 2023.04.27 |