dev_AI_framework

layer에서 하나의 데이터가 아닌 입력된 전체 데이터를 처리하도록

명징직조지훈 2024. 9. 4. 12:15

특성의 개수가 n 개인 데이터의 입력,

이전에는 데이터 하나씩 layer 의 call 연산을 수행,

Seqeuntial.fit 내 불필요한 반복문 연산을 줄이기 위해 입력 데이터 전체를 각 layer 연산에 넘겨줌

이는 나중에 병렬화 등을 적용하기에 더 좋을 듯?

 

fit 과 하위 layer 들의 call 메서드 수정

Sequential.fit 수정

        # 연산 결과를 저장
        result = []

        # 초기 입력값
        output = x
        # 전체 데이터를 처리하도록
        for layer in self._layers:
            output = layer.call(output)
            result.append(output)
            
        return result

dense.call 수정

    def call(self, inputs):
        """
        dense 층 연산

        Parameters:
        inputs (n, p) : p 차원 n개의 데이터 입력
        
        Returns (n*, p*): dense 연산 결과
        """
        x = operations_matrix.matrix_multiply(inputs, self.weights)
        if self.bias is not None:
            x = operations_matrix.matrix_add(x, np.tile(self.bias, x.shape))
        if self.activation is not None:
            x = self.activation(x)
        return x