fit 함수에서 각 레이어의 연산 이후 받은 hidden_input, output 의 값을 저장한다.
해당 layer 의 어떤 방식으로 저장할지?
self.layer[layer_num] 은 딕셔너리 객체, Dense 층에서 전달해줄 수 있겠다
# train Dense
def train(self, dict, train):
hidden_node = dict['hidden_node']
# 가중치의 임의 생성, 입력, 은닉 노드의 개수에 따라 가중치가 생성된다.
weight = np.random.rand(train.shape[1], hidden_node)
#편향값의 임의 생성, 동일한 편향 값을 사용한다.
bias = np.random.rand(1)
# 가중치 값 저장
self.Dense_dict['weight'] = weight
# 편향 값 저장
self.Dense_dict['bias'] = bias
#가중치와 노드 출력의 행렬곱연산, 편향값 덧셈
hidden_input = weight @ train + bias
if(dict['activation'] == 'sigmoid'):
#노드 입력과 활성화 함수 연산을 통한 노드 출력 계산
# cnn 에선 0과 1 사이의 결과를 출력해야 하기 때문에 시그모이드 활성화 함수를 사용
hidden_output = self.activation.sigmoid(hidden_input)
dict['hidden_input'] = hidden_input
dict['hidden_output'] = hidden_output
'ml_framework' 카테고리의 다른 글
fit(loss) (0) | 2023.04.23 |
---|---|
fit(dense) (0) | 2023.04.23 |
Sequential(2) (0) | 2023.04.22 |
Dense(2) (0) | 2023.04.20 |
Sequential (0) | 2023.04.19 |