Tensorflow로 MNIST 손글씨 이미지 분류
    • PDF

    Tensorflow로 MNIST 손글씨 이미지 분류

    • PDF

    Article Summary

    VPC 환경에서 이용 가능합니다.

    Data Forest를 사용하여 Singlebatch로 작업을 제출하는 방법을 설명합니다.

    Step 1. 계정 생성

    Step 2. 데이터 셋 확인

    이 예제에서는 MNIST 데이터 셋을 사용합니다. MNIST 데이터 셋은 손글씨 이미지로 구성된 숫자 데이터 셋입니다. 60,000개의 학습 데이터셋(train dataset)과 10,000개의 테스트 데이터 셋(test dataset)으로 이루어져 있고 각 이미지에 대응되는 숫자 레이블 데이터가 있습니다.

    파일설명
    train-images-idx3-ubyte.gz학습 셋 이미지
    train-labels-idx1-ubyte.gz학습 셋 레이블
    t10k-images-idx3-ubyte.gz테스트 셋 이미지
    t10k-labels-idx1-ubyte.gz테스트 셋 레이블

    Step 3. Workspace 생성

    워크스페이스를 생성하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest 메뉴를 차례대로 클릭해 주십시오.
    2. AI Forest > Workspaces > [워크스페이스 생성] > [Advanced 워크스페이스] 를 클릭해 주십시오.
    3. Data Forest 계정을 선택하고 워크스페이스 이름을 설정한 뒤 워크스페이스 유형은 ’Singlebatch’를 선택해 주십시오.
      df-af-mnist_1-3_vpc_ko
    4. 도커 이미지는 Tensorflow를 선택해 주십시오.
      참고

      Tensorflow는 구글에서 개발한 오픈소스 머신 러닝 라이브러리입니다. Tensorflow에 대한 자세한 설명은 Tensorflow 홈페이지를 참조해 주십시오.

    5. 이미지 버전을 선택해 주십시오.
      이 예제에서는 r2.1를 선택합니다.
      df-af-mnist_1-4_vpc_ko
    6. GPU 모델의 이름, GPU 코어 개수, 메모리 용량을 선택해 주십시오.
      이 예제에서는 기본 설정값으로 진행합니다.
      df-af-mnist_1-5_vpc_ko
    7. 데이터 설정 영역에 정보를 입력하고 [추가] 버튼을 클릭해 주십시오.
      • 입력
        • Input Path: 컨테이너로 복사될 입력 데이터의 경로 입력, ‘/user/{username}/data_in’ 입력
        • Input Container Local Path: 입력 데이터를 저장 할 컨테이너 경로 입력
      • 출력
        • Output Path: 결과물을 저장할 HDFS 경로 입력, ‘/user/{username}/data_out’ 입력
        • Output Container Local Path: 출력 데이터가 존재하는 컨테이너의 경로 입력
        • Overwrite: HDFS에 출력 데이터 저장 시 이미 파일이 있을 경우에 덮어 쓰기 여부 설정
          df-af-mnist_1-6_vpc_ko
    8. [다음] 버튼을 클릭해 주십시오. 워크스페이스 생성이 완료됩니다.

    Step 4. 예제 코드 다운로드

    워크스페이스의 도커 이미지와 버전에 맞춰 예제 파일을 다운로드해 주십시오.
    예제를 수행하기 위해 필요한 예제 코드는 다음과 같습니다.

    버전파일
    Tensorflow-r1.14mnist_tf1.zip
    Tensorflow-r2.1mnist_tf2.zip
    Tensorflow-r2.3.1mnist_tf2_3_1.zip
    참고

    워크스페이스 생성 시 설정한 Tensorflow 버전에 맞는 예제 코드로 진행해 주십시오. 예제에서는 Tensorflow-r2.1를 선택했기 때문에 mnist_tf2.zip을 다운로드했습니다.

    tf-mnist.py은 하나의 히든 레이어로 구성된 모델에 대해 'tf.keras.datasets.mnist'에서 제공하는 MNIST 학습셋으로 training을 진행하고 테스트 셋으로 evaluation을 진행하는 코드입니다.

    ...
    # 데이터 셋 불러오기
    mnist = tf.keras.datasets.mnist
      (x_train, y_train), (x_test,y_test) = mnist.load_data()
    
    # 데이터 전처리하기 
      x_train, x_test = x_train/255.0, x_test/255.0
    
    # 모델 구성하기
      model = tf.keras.models.Sequential([
      tf.keras.layers.Flatten(input_shape=(28, 28)),
      tf.keras.layers.Dense(128, activation='relu'), 
      tf.keras.layers.Dropout(0.2),
      tf.keras.layers.Dense(10, activation='softmax')
      ])
    
    # 컴파일 하기
      model.compile(optimizer='adam',
            loss='sparse_categorical_crossentropy',
            metrics=['accuracy'])
    
    # 저장과 복원을 위한 체크포인트 및 콜백함수 지정하기
      checkpoint_path = FLAGS.log_dir+"/cp-{epoch:04d}.ckpt"
      checkpoint_dir = os.path.dirname(checkpoint_path)
    
      cp_callback = tf.keras.callbacks.ModelCheckpoint(
        filepath=checkpoint_path, 
        verbose=1,
        save_weights_only=True,
        period=5)
    
    # 가중치 저장하기
      model.save_weights(checkpoint_path.format(epoch=0))
    
    # 모델 훈련하기
      model.fit(x_train, y_train, epochs=FLAGS.max_steps, callbacks=[cp_callback])
    
    ...
    
    

    Step 5. Workspace Browser에 파일 업로드

    mnist.zip의 압축을 풀고 Workspace Browser에 업로드하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest 메뉴를 차례대로 클릭해 주십시오.
    2. AI Forest > Workspaces를 클릭해 주십시오.
    3. 계정을 선택하고 워크스페이스 이름 옆의 워크스페이스 링크 아이콘을 클릭해 주십시오.
      af-singlebatch_4-1_vpc_ko(1)
    4. 파일을 업로드할 워크스페이스를 선택하고 [업로드] 버튼을 클릭해 주십시오.
    5. 압축을 푼 'mnist.zip'의 파일을 업로드 창에 끌어다 놓으십시오.
    6. [전송시작] 버튼을 클릭해 주십시오.
    7. 업로드가 완료되면 [확인] 버튼을 클릭해 주십시오.
      af-df-mnist_01_vpc_ko

    Step 6. Singlebatch로 작업 제출

    Singlebatch로 작업을 제출하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest > AI Forest > Workspace Browser 메뉴를 차례대로 클릭해 주십시오.
    2. 계정을 선택한 후 워크스페이스를 선택해 주십시오.
    3. 실행할 파일을 선택하고 [실행] 버튼을 클릭해 주십시오.
    4. 다음과 같이 정보를 입력해 주십시오.
      af-singlebatch_06_vpc_ko
    5. [확인] 버튼을 클릭해 주십시오. AI 앱이 실행됩니다.

    Step 7. 작업 로그 및 결과 확인

    작업을 실행한 후 수행 로그를 확인하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Data Forest > Apps 메뉴를 차례대로 클릭해 주십시오.
    2. 계정을 선택한 후 상세 정보를 확인할 앱을 클릭해 주십시오.
    3. 앱 상세 정보에서 Quick links > AppMaster UI 항목의 URL에 접속해 주십시오.
    4. 로그인 창이 나타나면 Data Forest 계정 생성 시 입력한 계정 이름과 비밀번호를 입력해 주십시오.
    5. Applications 메뉴에서 작업 실행 시 입력한 앱 이름으로 수행된 ID를 찾아 클릭해 주십시오.
      df-af-coco_appid_vpc
    6. 해당 애플리케이션 ID의 Logs 를 클릭해 주십시오. 수행한 작업의 로그를 확인할 수 있습니다.
      df-qs_logs_vpc
    7. 작업이 완료되고 결과물을 확인하려면 { Workspace 생성 시 출력 HDFS Path에 입력한 경로}/{--log_dir 인자로 전달한 값}의 경로를 확인해 주십시오.
      df-af-mnist_result_vpc

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.