본문 바로가기

ml_framework

pooling

풀링

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