로그인 바로가기 하위 메뉴 바로가기 본문 바로가기
난이도
기본

파이토치로 시작하는 딥러닝 기초

임시 이미지 Deep Learning Zero To All
http://www.boostcourse.org/ai214/forum/11853
좋아요 658 수강생 9919

안녕하세요, 프로젝트를 따라가다가 소소한 오류를 발견해서 여기에 남겨봅니다

프로젝트B check_util/checker.py에 63번째 줄에 보면 아래와 같은 코드가 있는데 2000이 아닌 {} 여기 부분에서 괄호 안을 len(dataset)으로 채워줘야 실행시 오류가 나지 않았습니다

try:
    if len(dataset) != 2000:
        print(f'{dataset.mode}의 __len__ 함수가 train_data의 데이터 갯수를 2000이 아닌 {}으로 반환하고 있습니다. 가지고 있는 데이터셋 또는 __len__함수 구현에 문제가 없는지 다시 확인하시기 바랍니다.'.format(len(dataset)))
        len_flag = False

프로젝트C 노트북의 6. 베이스라인 성능 측정에 보면 아래와 같은 블록이 있습니다.

for i in range(15):
data_idx = np.random.randint(len(test_data))
pred = test_data[data_idx][0][-1, 0]
pred = pred * std[0] + mean[0]  # 예측 기온을 normalization 이전 상태(섭씨 단위)로 되돌리는 작업
target = test_data[data_idx][1][0] * std[0] + mean[0]  # 실제 기온을 normalization 이전 상태(섭씨 단위)로 되돌리는 작업
print('예측 기온: {:.1f} / 실제 기온: {:.1f}'.format(pred, target))

여기서 std, mean을 전역 변수에서 가져오는데 저런 전역 변수를 정의한 적이 없으므로 에러가 납니다. 대신에 test_data.std[0], test_data.mean[0]을 사용하면 오류가 나지 않았습니다 (아래 블록에도 비슷한 내용이 있는데 여기를 참조했습니다)