[Python] 신경망 처음부터 끝까지 구현하기 04
신경망 처음부터 끝까지 구현하기 04
- arrange_data 함수 생성
def arrange_data(mb_size, train_ratio):
global shuffle_map, test_begin_index
# suffle_map 변수에 0부터 데이터 행 개수 까지 저장 (0 ~ len(data) -1)
shuffle_map = np.arange(data.shape[0])
# suffle_map을 무작위로 섞음
np.random.shuffle(shuffle_map)
# 전체 데이터에서 train_ratio만큼 곱한 값(훈련 데이터 크기)을 mb_size(미니 배치 크기)로 나눈 값을 저장
mini_batch_step_count = int(data.shape[0] * train_ratio) // mb_size
# 미니 배치 크기와 개수를 곱한 값 = test데이터 시작 인덱스
test_begin_index = mini_batch_step_count * mb_size
return mini_batch_step_count
- 함수 실행 결과
mini_batch_step_count = arrange_data(mb_size = 2, train_ratio = 0.8)
print("mini_batch_step_count :", mini_batch_step_count)
print("shuffle_map : ", shuffle_map[:3])
print("test_begin_index : ", test_begin_index)
- get_train_data 함수 생성
def get_train_data(mb_size, n):
if n == 0:
# shuffle_map의 훈련 데이터를 섞음
np.random.shuffle(shuffle_map[:test_begin_index])
# n 위치의 한 미니배치를 train_data에 넣는다
train_data = data[shuffle_map[mb_size * n : mb_size * (n+1) ]]
# x값과 y값으로 나눠서 리턴
return train_data[ : , : -output_cnt], train_data[ : , -output_cnt : ]
- 함수 실행 결과
train_x, train_y = get_train_data(mb_size = 2, n = 1)
print(train_x)
print(train_y)
- get_test_data 함수 생성
def get_test_data():
# shuffle_map의 test인덱스 부터의 값을 test_data에 넣는다
test_data = data[shuffle_map[test_begin_index:]]
# x값과 y값으로 나눔
return test_data[ : , : -output_cnt], test_data[ : , -output_cnt : ]
- 함수 실행 결과
test_x, test_y = get_test_data()
print(test_x)
print("=================================")
print(test_y)
Author And Source
이 문제에 관하여([Python] 신경망 처음부터 끝까지 구현하기 04), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gandi0330/Python-신경망-처음부터-끝까지-구현하기-04저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)