요약
⏱ 00:15GPU나 고성능 워크스테이션을 구입하기 어려운 학습자는 Google Colab에서 딥러닝을 실습할 수 있다. 강의는 약 367MB의 잎 질병 이미지 데이터를 내려받아 Google Drive에 올리고, Colab에서 GPU 런타임을 선택해 Drive를 마운트하는 과정을 보여준다. 데이터 폴더의 ‘경로 복사’를 이용해 학습·테스트 경로를 지정하고, !nvidia-smi로 할당된 GPU를 확인한다.
⏱ 13:36모델은 InceptionV3의 사전 학습 가중치를 활용하는 전이 학습으로 구성한다. 기존 레이어를 고정하고 출력을 평탄화한 뒤, 클래스 폴더 수에 맞춘 Dense 출력과 softmax를 연결한다. categorical cross-entropy와 Adam, accuracy로 컴파일한다. 학습 데이터에는 스케일링과 전단·확대 증강을 적용하고, 테스트 데이터에는 스케일링만 적용한다.
⏱ 16:02입력 크기는 224×224이며 Colab 실습의 배치 크기는 16이다. 학습 이미지 18,540개와 테스트 이미지 1,869개를 읽는다. 18,540÷16=1,158.75이므로 화면에는 에포크당 1,159회가 표시된다. 학습에는 기다림이 필요하며, 진행하면서 손실 감소와 정확도 증가를 관찰한다.
⏱ 18:44로컬 워크스테이션은 RAM 64GB와 VRAM 24GB의 Titan RTX를 갖추고 있으며, 10에포크에 약 25분이 걸렸다고 설명한다. 로컬 비교에서는 배치 크기 32를 사용했고, 첫 에포크 학습·검증 정확도는 약 71%·77%, 최종 값은 0.90·0.9005였다. 제공 코드의 데이터 경로를 자신의 Drive 위치에 맞추는 것이 실습의 핵심이다. 이 환경 설정은 이후 BERT·Transformer·고급 자연어 처리 실습에도 활용하려는 준비 과정이다.
⏱ 00:001. GPU가 없어도 시작하는 딥러닝 실습
⏱ 00:00안녕하세요. 크리시 나이크입니다. 제 유튜브 채널에 오신 것을 환영합니다. 오늘은 Google Colab에서 딥러닝 모델을 학습하는 방법을 보여드리겠습니다. GPU를 구입할 여유가 없어 모델 학습에 사용하지 못하는 분들이 많아 이 영상을 만들었습니다. Colab은 훌륭한 대안입니다. 여러 종류와 크기의 데이터를 사용할 수 있고, 데이터가 아주 많더라도 학습할 수 있습니다. 다만 시간이 조금 더 걸릴 수 있으니 인내심을 가지고 기다려야 합니다.
⏱ 00:32Colab은 학생이나 GPU, 고성능 노트북, 워크스테이션을 마련하기 어려운 분들에게 큰 도움이 됩니다. 이런 방식으로 학습해 보시기 바랍니다. 저 역시 데이터 과학 업계에서 경력을 시작하던 시절 Colab을 많이 사용했습니다. 코드를 실행하고 모델을 학습하는 데 활용했습니다. 이번에도 Colab 안에서 딥러닝 모델을 학습하는 예제를 보여드릴 테니, 제가 설명하는 단계를 차례대로 따라오시면 됩니다.
⏱ 02:042. 이미지 데이터 내려받기와 Google Drive 업로드
⏱ 02:04여기 보이는 것들이 데이터셋의 이미지입니다. 파일을 열어 보면 잎에 나타나는 여러 질병을 볼 수 있습니다. 지금 보고 있는 종류는 ‘Pepper Bell Bacterial Spot’이라고 부릅니다. 건강한 잎을 보고 싶다면 이쪽 이미지를 열면 됩니다. 토마토 잎 분류 예제에서 건강한 잎이 어떻게 생겼는지 확인할 수 있습니다. 그 밖에 세균성 반점 같은 다른 종류도 있습니다. 화면에 해당 예제들이 보이며, 이미지가 종류별로 잘 분류되어 있고 수량도 상당히 많습니다. 얼마나 빨리 진행할 수 있는지 보겠습니다.
⏱ 02:46첫 번째로 할 일은 전체 데이터셋을 다운로드하는 것입니다. 오늘 보여드리는 것은 Colab을 사용하는 한 가지 방법이며, 앞으로 다른 방법도 소개하겠습니다. ‘Kaggle에서 데이터셋을 바로 가져올 수 있나요?’라고 생각하실 수도 있습니다. 그 방법도 이후 영상에서 살펴보겠습니다. 이번 방식은 간단합니다. 전체 데이터셋을 내려받아 로컬 컴퓨터에 저장하면 됩니다. 앞에서 보여드린 예제처럼, 우선 컴퓨터에 파일을 준비해 두는 단계입니다.
⏱ 03:17그다음 Google Drive에 들어가 전체 데이터셋을 업로드합니다. 저는 이미 업로드해 놓았습니다. Drive를 사용해 보셨다면 아주 간단합니다. ‘새로 만들기’에서 ‘폴더 업로드’를 누르고 해당 폴더를 선택하면 됩니다. 원하는 경로에 저장하면 되는데, 저는 ‘내 드라이브’의 Programs 안에 데이터셋 폴더를 두고 train과 test를 올렸습니다. 여기에서 데이터셋이 모두 보이고, 각 폴더 안으로 들어가면 이미지 파일도 확인할 수 있습니다.
⏱ 03:56이미지가 많기 때문에 업로드에는 시간이 걸릴 수 있습니다. 인터넷 속도에 따라 달라지니 기다려 주세요. 저는 비교적 저렴한 가격에 Google 저장 공간을 추가로 구입해서 약 100GB를 확보했습니다. Colab에서 모델과 딥러닝을 학습하는 등 개인적인 용도로 사용할 예정이고, BERT 재생목록도 준비하고 있어 공간을 늘렸습니다. 필요에 따라 1TB나 2TB를 선택할 수도 있습니다. 반드시 구매해야 하는 것은 아닙니다. 기본 제공량은 15GB인데, 저는 이미 그 한도를 넘어 약 24.1GB를 사용 중입니다. 데이터셋을 올렸다면 첫 단계가 끝났습니다.
⏱ 04:423. 노트북 열기와 GPU 런타임 설정
⏱ 04:42이제 Google Colab을 엽니다. 데이터셋을 Drive에 넣은 이유는 Colab에서 그 데이터를 불러와 사용하기 위해서입니다. 여기에는 제가 만들어 놓은 .ipynb 노트북 파일이 있습니다. 아직 노트북을 만들지 않았다면 ‘새 노트북’을 눌러 생성하면 됩니다. 버튼을 클릭하면 새 노트북 파일이 만들어집니다. 지금은 토마토 질병 예제용 Colab 노트북을 열겠습니다. 이 노트북 파일 역시 Google Drive에 저장되어 있습니다.
⏱ 05:14노트북은 GitHub에서 가져올 수도 있고, 업로드 옵션으로 .ipynb 파일을 올릴 수도 있습니다. 이 파일을 GitHub에 제공할 예정이니 GitHub에서 불러오거나 업로드 탭을 이용하시면 됩니다. 어렵지 않습니다. 이 창을 닫고 해당 파일을 열었다고 생각해 보겠습니다. 화면에 보이는 것이 실행할 전체 코드입니다. 다른 이미지 분류 문제 영상에서도 이 코드와 모델 학습 방법을 설명했지만, 걱정하지 않으셔도 됩니다. 여기에서도 필요한 단계를 모두 보여드리겠습니다.
⏱ 05:57파일을 열면 먼저 폴더 아이콘을 누릅니다. 데이터셋에 접근하려면 Google Drive를 연결해야 합니다. Drive에 있는 데이터를 가져오거나, Colab에서 직접 읽을 수 있어야 하기 때문입니다. 폴더 패널에 보이는 아이콘 중 ‘드라이브 마운트(Mount Drive)’를 누르면 연결할 수 있습니다. 이것은 중요한 단계입니다. 다만 마운트하기 전에 먼저 확인하고 변경해야 할 설정이 하나 더 있습니다. 런타임의 하드웨어 가속기를 GPU로 지정해야 합니다.
⏱ 06:36처음에는 하드웨어 가속기가 ‘없음(None)’으로 되어 있을 수 있습니다. 반드시 GPU로 바꾸세요. 제 런타임은 이미 GPU라서 변경하지 않겠습니다. 노트북 설정을 열어 GPU, TPU, 없음 중 무엇으로 되어 있는지 확인하고 GPU를 선택하면 됩니다. 그다음 ‘드라이브 마운트’를 누르면 Google Drive에 연결할 권한을 요청합니다. 따라서 브라우저에서 Google 계정에 로그인되어 있어야 합니다. 저는 여기에서 Google Chrome을 사용하고 있습니다.
⏱ 07:084. 마운트한 데이터 경로와 할당 GPU 확인
⏱ 07:08Google Drive 연결에는 시간이 조금 걸립니다. 연결되면 drive라는 폴더가 나타납니다. 파일 영역에는 연습용으로 미리 제공된 기본 데이터셋도 있습니다. 이제 drive 폴더를 열고 그 안의 My Drive로 들어가면 경로를 확인할 수 있습니다. 제 개인 문서도 몇 개 보이는데, 그 부분은 넘어가겠습니다. Programs 폴더 안으로 들어가면 앞서 올려 둔 데이터셋 폴더를 찾을 수 있습니다. 이렇게 Drive의 폴더 구조가 Colab에서 보이는지 확인합니다.
⏱ 07:42데이터셋 안에는 test와 train 폴더가 있습니다. 정확한 경로를 알고 싶다면 해당 폴더를 마우스 오른쪽 버튼으로 누르고 ‘경로 복사(Copy path)’를 선택하세요. 그러면 데이터셋 경로를 얻을 수 있습니다. 거기에 /train이나 /test를 붙이면 각각의 이미지에 접근할 수 있습니다. 이쪽에는 학습 이미지가, 다른 쪽에는 테스트 이미지가 들어 있습니다. 경로를 이곳에 두고 패널을 닫은 뒤 다음 단계로 넘어가겠습니다.
⏱ 08:06다음으로 !nvidia-smi를 실행해 어떤 GPU가 할당되었는지 확인합니다. 지금은 Tesla T4라고 나옵니다. 다시 실행해 보겠습니다. 경우에 따라 T4를 받을 수도 있고 더 나은 다른 GPU를 받을 수도 있습니다. GPU를 바꾸고 싶다면 ‘런타임 초기화(Factory reset runtime)’를 해 볼 수 있습니다. 그러면 다른 GPU가 배정될 가능성이 있지만, 대체로 T4를 받는 경우가 많습니다. 예전에 RAPIDS AI를 설명한 영상에서도 T4 또는 그보다 상위 GPU가 필요했고, 그렇지 않으면 그 예제가 동작하지 않았습니다.
⏱ 08:52다시 연결을 눌러 보겠습니다. Drive가 있는지도 확인하겠습니다. 지금은 초기화 중이고 연결할 수 없다는 메시지가 나오지만, 연결되면 Drive도 자동으로 마운트되니 기다리면 됩니다. 시간이 조금 걸릴 수 있습니다. 이제 연결되었고 Google Drive도 보입니다. 명령을 다시 실행해서 GPU가 바뀌었는지 확인해 보니 이번에는 Tesla K80이 할당되었습니다. T4와 K80 중 자신에게 어느 쪽이 더 나은지 알아볼 필요가 있습니다. 한 번 더 실행해도 지금은 K80으로 나옵니다.
⏱ 09:335. GPU 재할당 시연과 TensorFlow 설치
⏱ 09:33다시 바꾸고 싶다고 해 보겠습니다. 여기서는 런타임 설정을 바꾼다는 뜻이 아니라 런타임을 초기화한다는 뜻입니다. K80을 잘 모르면 ‘Tesla K80 versus Tesla T4’처럼 검색해 비교할 수 있습니다. 제가 T4였는지 P4였는지 잠시 혼동했네요. 비교 페이지에서 어느 쪽이 더 나은지 볼 수 있습니다. 제 생각에는 K80이 P4보다 좋지는 않은 것 같습니다. 다시 초기화했으니 재연결해서 어떤 GPU가 할당되는지 보겠습니다. P4가 나올지, K80이 나올지 확인해 보겠습니다.
⏱ 10:21성능을 알아보기 위해 가격도 찾아보겠습니다. K80은 어떤 항목에서 5,000 정도로 보이고, P4의 가격도 검색해 봅니다. 다른 항목에는 메모리 24GB인 Tesla K80이 약 32,000인도 루피로 나옵니다. 다른 제품의 가격은 얼마인지 더 보겠습니다. 정확히는 모르겠지만 K80의 성능이 더 좋지는 않을 것 같습니다. 연결이 끝나 명령을 다시 실행하니 이번에는 Tesla T4입니다. 아까 P4를 검색했는데 T4를 선택해야 했네요. T4 항목은 약 2,199달러로 보입니다. 24GB K80의 32,000루피 가격도 확인했고, 일단 이 환경으로 진행하겠습니다.
⏱ 11:26환경이 준비되면 먼저 TensorFlow의 GPU 패키지를 설치합니다. 노트북 셀에 !pip install tensorflow-gpu라고 입력하면 됩니다. 다시 말씀드리면 비교 대상은 Tesla T4였고, 제가 앞에서 P4를 사용해 검색했습니다. K80과 T4를 비교하면 됩니다. 다른 GPU가 배정될 수도 있으며, 운이나 다른 사람들의 사용량에 따라서도 달라집니다. 런타임을 초기화하면 다른 GPU가 할당될 수 있습니다. 설치 화면에는 이미 준비해 둔 항목 때문에 ‘Requirement already satisfied’가 나오고, tensorflow-gpu 패키지 설치 과정도 표시됩니다.
⏱ 12:09여기에서 사용하는 TensorFlow 버전은 2.3.0입니다. 이 시연에서는 가장 최근 버전으로 소개하고 있으며, 설치가 정상적으로 실행되었습니다. 버전을 직접 확인해도 2.3.0이라고 나옵니다. 함께 보여드리고 싶은 것이 RAM 표시입니다. 전체 RAM은 약 12.72GB로 보입니다. 디스크의 최대 용량은 약 68.40GB이고, 현재 그중 약 31.65GB를 사용 중인 것으로 표시됩니다. 이렇게 설치 결과와 할당된 메모리, 디스크 상태를 확인할 수 있습니다.
⏱ 12:386. 라이브러리 불러오기와 학습·검증 경로 지정
⏱ 12:38다음에는 라이브러리를 불러오는 셀을 실행하겠습니다. 앞에서 설치라고 표현했지만, 이 부분은 사용할 라이브러리를 모두 가져오는 과정입니다. 이번 예제에서는 InceptionV3를 사용할 것입니다. 그다음 특히 중요한 것이 학습용 데이터와 검증용 데이터의 경로입니다. 앞서 말씀드린 것처럼 train과 검증 데이터가 있는 위치를 정확히 지정해야 합니다. Programs 안의 데이터셋 폴더, 그리고 train 폴더로 들어가서 필요한 위치를 확인합니다.
⏱ 13:05경로를 지정하려면 폴더의 경로를 복사해서 노트북의 해당 위치에 붙여 넣습니다. 지금 예제에서는 test에 대한 전체 경로가 보입니다. 경로 앞뒤에 따옴표를 붙여 문자열로 지정하면 됩니다. 이런 방식으로 데이터 위치를 설정합니다. 이제 이쪽 경로는 준비되었습니다. 같은 방법으로 train과 test의 경로를 각각 찾아 넣으세요. 폴더를 마우스 오른쪽 버튼으로 클릭하면 경로를 얻을 수 있으니, 손으로 추측해서 쓰기보다 복사한 값을 이용하면 됩니다.
⏱ 13:26이 값이 실제 데이터셋의 경로이므로 정확한지 반드시 확인하세요. 로컬 컴퓨터에서 실행한다면 그 컴퓨터에 있는 데이터의 경로를 넣으면 됩니다. 이번 예제는 전이 학습(transfer learning) 기법을 사용하며, 사용할 모델은 InceptionV3입니다. 여기에서 InceptionV3를 불러오겠습니다. 잠깐, 이 부분의 모델 이름도 InceptionV3로 되어 있어야 합니다. 지금 다른 이름으로 적혀 있는 부분을 고치겠습니다.
⏱ 13:497. 사전 학습 가중치 고정과 분류 출력 구성
⏱ 13:49여기에서 데이터를 내려받는 과정이 보이며 실행도 정상적으로 끝났습니다. 다음에는 기존 레이어들을 학습하지 않도록 설정합니다. 이전 딥러닝 영상에서도 설명했듯이, inception.layers의 각 layer에 대해 layer.trainable = False로 둡니다. 전이 학습을 사용하므로 기존 가중치를 그대로 이용하려는 것입니다. include_top=False도 기억하세요. 여기에서는 첫 번째와 마지막 레이어를 사용하지 않는다는 식으로 설명하고 있으며, 그 때문에 이 옵션을 사용합니다. 셀을 실행하면 이 단계가 끝납니다.
⏱ 14:22이제 출력 클래스를 몇 개로 해야 하는지 알아보겠습니다. train 폴더에 들어가 클래스가 몇 개 있는지 확인합니다. 해당 위치의 폴더들을 모두 가져온 다음, 그 목록의 길이인 len(folders)를 구하면 클래스 수가 됩니다. 그다음에는 내려받은 Inception 모델의 출력을 평탄화(flatten)합니다. 기존의 마지막 레이어를 사용하지 않기 때문입니다. 여기에 사용자 정의 출력 레이어를 추가하며, 출력 노드의 수는 앞에서 구한 폴더 개수인 len(folders)로 정합니다.
⏱ 14:57이 작업에는 위에서 불러온 Dense와 Flatten을 사용합니다. 활성화 함수는 softmax로 지정해야 합니다. 두 범주를 구분하는 이진 분류라면 sigmoid를 사용할 수 있고, 여러 범주를 분류한다면 softmax를 사용하면 됩니다. 이어서 Model 객체를 만들 때 입력은 inception.input으로, 출력은 앞에서 만든 prediction으로 지정합니다. 이 prediction에 대해서는 출력 노드가 10개이고 활성화 함수가 softmax라고 설명하고 있습니다. 이전 Inception 모델의 평탄화된 출력에 이 분류 출력을 연결하는 구성입니다.
⏱ 15:36모델을 만든 뒤 model.summary()로 구조를 확인합니다. 특히 마지막 레이어를 주의해서 보세요. 이 부분에서는 마지막 레이어가 15라고 말하며, 아마 train 안에도 15개가 있을 것이라고 이야기합니다. InceptionV3의 첫 레이어도 확인해 보세요. 아주 큰 네트워크이므로 구조를 살펴보면 좋습니다. 입력 레이어에는 224, 224, 3이라는 크기가 표시되어 있습니다. InceptionV3 구조를 검색해 보겠습니다. 이런 구조를 자세히 이해하고 싶다면 알려 주세요. 관련 영상을 따로 만들 수도 있습니다.
⏱ 16:188. InceptionV3 구조와 데이터 증강 설정
⏱ 16:18InceptionV3의 구조는 이런 모습입니다. A, B, C 모듈과 격자 크기를 줄이는 부분이 있습니다. 다른 그림도 보다가 잔차 구조를 가리켰네요. 그 부분은 넘어가겠습니다. 이 그림에서 전체 구조와 사용된 요소를 볼 수 있습니다. 합성곱, 평균 풀링, 최대 풀링, 연결(concat), 드롭아웃, 완전 연결 레이어, softmax 같은 요소입니다. 여러 전이 학습 기법을 다루는 영상을 만들면 구조를 이해하는 데도 도움이 될 것 같습니다. 어쨌든 Keras에서 사전 학습된 가중치를 가져와 사용할 수 있으므로 적용 자체는 비교적 간단합니다.
⏱ 17:03여기까지 했으면 다음 단계는 모델 컴파일입니다. 손실 함수로 categorical cross-entropy, 최적화 알고리즘으로 Adam을 사용하고, 평가 지표는 accuracy로 지정합니다. 많이 사용하는 설정입니다. 다음은 특히 중요한 부분입니다. 학습 데이터셋에는 rescaling과 shear_range, zoom_range 같은 옵션을 적용합니다. 데이터 증강을 위한 설정들이 들어가는 것입니다. 이미지 값의 크기를 낮추는 스케일링도 반드시 해야 합니다. 이 설정을 빠뜨리지 않는 것이 중요합니다.
⏱ 17:23테스트 데이터셋에는 학습 데이터에 적용한 변환을 모두 적용하지 않습니다. 테스트 데이터에는 스케일링만 사용합니다. 다시 말해 테스트 데이터에 데이터 증강 기법을 적용하지 말고, 값의 크기를 조정하는 옵션만 적용하세요. 학습 데이터에는 앞에서 말한 증강 설정을 사용하지만, 테스트 데이터는 화면에 보이는 스케일링 설정만 사용하는 방식입니다. 이를 위해 사용하는 것이 ImageDataGenerator입니다. 이제 이 설정을 만드는 셀을 실행하겠습니다.
⏱ 17:47이제 flow_from_directory로 학습 이미지를 읽겠습니다. 경로는 content, drive, My Drive, Programs, 데이터셋 폴더를 거쳐 train으로 이어지는 위치입니다. target_size는 (224, 224), class_mode는 categorical로 두고 batch_size는 16으로 지정하세요. 제가 비교하던 워크스테이션의 RAM은 약 16GB였는데, 이곳의 RAM은 그보다 적기 때문입니다. 다른 쪽 배치 크기도 16으로 맞추겠습니다. 나머지 설정은 준비되어 있으니 실행합니다. 학습 데이터에서는 이미지 18,540개를, 테스트 데이터에서는 1,869개를 찾았다고 표시됩니다.
⏱ 18:279. 학습 시간과 에포크별 배치 수 확인
⏱ 18:27학습에는 시간이 걸릴 것입니다. 2~3일이 걸린다는 뜻은 아니지만, 적어도 30분에서 1시간 정도는 생각해야 합니다. 제 워크스테이션에서는 이 문제를 10에포크 학습하는 데 약 25분이 걸렸습니다. 그 워크스테이션은 RAM 64GB와 VRAM 24GB인 Titan RTX를 갖추고 있어 처리 속도가 빠릅니다. Colab에서는 얼마나 걸릴지 보겠습니다. 한 에포크가 진행되는 모습만 봐도 대략적인 시간을 알 수 있을 것입니다. 이제 학습이 시작되었고 첫 번째 에포크가 실행 중입니다. 실행 모습을 보여드리기 위해 에포크 값도 지정해 두었습니다.
⏱ 19:12이제 모델 학습이 계속 진행됩니다. 이후에 작성할 코드는 그래프를 보면서 학습 정확도와 검증 정확도를 확인하는 부분입니다. 아직 그 코드를 추가해야 하지만, 이런 설명은 딥러닝 프로젝트를 다루는 라이브 프로젝트 재생목록에서도 했습니다. 지금은 시간이 걸리며 예상 시간은 약 1시간 27분으로 표시됩니다. 배치 크기가 16일 때 RAM 사용량이 올라가는지도 볼 수 있습니다. 손실은 16.46이고 정확도는 여기에서 1.1250이라고 읽고 있습니다. 시간이 얼마나 걸리는지 더 지켜보겠습니다.
⏱ 19:59배치 크기를 16으로 했는데 진행 표시에는 왜 1,159가 나올까요? 전체 이미지 수 18,540을 16으로 나누면 됩니다. 계산기를 열어 확인해 보겠습니다. 18,540 ÷ 16은 1,158.75이고, 화면에서는 1,159를 사용하고 있습니다. 이 수를 설명하면서 강연에서는 ‘floor 부분’이라는 표현을 씁니다. 조금 더 시간이 지나면 손실이 줄고 정확도는 올라가는 모습을 볼 수 있을 것입니다. 배치 크기와 한 에포크에 표시되는 처리 횟수를 이렇게 연결해서 살펴볼 수 있습니다.
⏱ 20:44이미지가 18,000개 이상 있으니 시간이 걸립니다. 직접 실행해 보고 약 한 시간 정도는 인내심을 가지고 기다리세요. 그대로 실행해 두면 학습이 진행되면서 정확도도 갱신됩니다. 이번 영상의 전체 목적은 이미지 등을 사용하는 딥러닝 모델을 어떻게 학습하는지 보여드리는 것이었습니다. 앞으로는 BERT, Transformer, 고급 자연어 처리 기법도 보여드릴 예정입니다. 워크스테이션이 없는 분들이 이런 내용을 효율적으로 배우기에는 Colab이 좋은 선택입니다. 워크스테이션을 가진 분들은 필요한 것을 설치해서 그 환경에서 실행하시면 됩니다.
⏱ 21:3310. 로컬 Jupyter 학습 기록과 결과 비교
⏱ 21:33앞으로 Linux에서 모델을 학습하고 작업하는 방법도 보여드리려고 제 워크스테이션에 Linux 파티션을 만들고 있습니다. 여기서는 정확도가 처음 0.18이었는데 이제 0.26으로 올라갔습니다. 적어도 한 에포크가 끝나는 것과 그때의 정확도는 보여드리고 싶습니다. 이 부분을 빨리 넘겨 볼까요? 어떻게 해야 할지 잠시 보겠습니다. 일단 계속 실행해 두면 됩니다. 이런 방식으로 사용하실 수 있습니다. 저는 이미 로컬 환경에서도 시험해 봤으니, 에포크가 진행되는 동안 제 로컬 시스템의 결과를 보여드리겠습니다.
⏱ 22:21먼저 로컬 시스템의 별도 환경을 활성화합니다. 환경 이름을 입력하다가 잘못 입력했는데, myenv입니다. 이어서 딥러닝 작업 디렉터리로 이동한 뒤 jupyter notebook을 실행해 Jupyter 노트북을 엽니다. 이 실습을 위해 따로 만들어 둔 환경입니다. 목록에는 회원분들을 위해 작업하던 NYC 예제도 있고, 토마토 질병 예제인 PlantVillage도 있습니다. 여기에서 InceptionV3를 사용해 로컬로 학습했던 결과를 확인해 보겠습니다.
⏱ 23:03로컬에서 학습할 때는 배치 크기를 더 늘려 32로 설정했던 것 같습니다. 출력에는 에포크별 실행 시간이 481초, 163초 등으로 표시되어 있습니다. 첫 번째 에포크만 끝났을 때도 학습 정확도는 약 71%, 검증 정확도는 약 77%였습니다. 학습이 끝난 시점에는 학습 정확도가 0.90, 검증 정확도가 0.9005로 나왔습니다. 이 전체 코드를 여러분께 제공하겠습니다. 사용하실 때는 데이터셋 경로만 자신이 Google Drive에 파일을 업로드한 위치에 맞게 바꾸면 됩니다.
⏱ 23:49그동안 Colab의 실행은 계속 시간이 걸리고 있습니다. 이제 손실이 16에서 10으로 감소했고 정확도도 올라가고 있습니다. 최종적으로는 로컬 예제에서 보신 것과 비슷한 형태의 결과를 확인하게 될 것입니다. Colab에서 학습할 때는 배치 크기를 16으로 설정하는 점을 기억하고 직접 실행해 보세요. 과정이 이해되셨고 영상이 유용했기를 바랍니다. 아직 구독하지 않으셨다면 채널을 구독해 주세요. 다음 영상에서 다시 뵙겠습니다. 좋은 하루 보내세요. 감사합니다. Google Colab과 Google에 응원을 보내며 마치겠습니다.






