TensorFlowでMNIST手書き画像を分類する
    • PDF

    TensorFlowでMNIST手書き画像を分類する

    • PDF

    Article Summary

    VPC環境で利用できます。

    Data Forestを使用してシングルバッチとしてジョブを提出する方法を説明します。

    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. ワークスペースの作成

    ワークスペースを作成する方法は以下のとおりです。

    1. NAVERクラウドプラットフォームコンソールで、Services > Big Data & Analytics > Data Forestメニューを順にクリックします。

    2. AI Forest > Workspace > [ワークスペースの作成] > [Advancedワークスペース] をクリックします。

    3. Data Forestアカウントを選択してワークスペース名を設定し、ワークスペースタイプは「Singlebatch」を選択します。
      df-af-mnist_1-3_vpc_ko

    4. DockerイメージはTensorFlowを選択します。

      参考

      TensorFlowはGoogleが開発したオープンソース機械学習ライブラリです。TensorFlowについての詳しい説明はTensorFlowの公式サイトをご参照ください。

    5. . イメージのバージョンを選択します。
      この例ではr2.1を選択します。
      df-af-mnist_1-4_vpc_ko

    6. GPUモデルの名前、GPUコア数、メモリ容量を選択します。
      この例ではデフォルト設定値で行います。
      df-af-mnist_1-5_vpc_ko

    7. データの設定領域に情報を入力して [追加] ボタンをクリックします。

      • 入力:「/user/{username}/data_in」、「data_in」
      • 出力:「/user/{username}/data_out」、「data_out」
        df-af-mnist_1-6_vpc_ko
    8. [次へ] ボタンをクリックします。ワークスペース作成が完了します。

    Step 4. サンプルコードのダウンロード

    ワークスペースのDockerイメージとバージョンに合わせてサンプルファイルをダウンロードします。
    以下は、例を実行するために必要なサンプルコードです。

    バージョンファイル
    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学習セットでトレーニングを行い、データセットで評価を行うコードです。

    ...
    # データセットを読み込む
    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. NAVERクラウドプラットフォームコンソールで、Services > Big Data & Analytics > Data Forestメニューを順にクリックします。
    2. AI Forest > Workspaceをクリックします。
    3. アカウントを選択してワークスペース名の横のワークスペースリンクアイコンをクリックします。
      af-singlebatch_4-1_vpc_ko(1)
    4. ファイルをアップロードするワークスペースを選択して [アップロード] アイコンをクリックします。
    5. アップロード画面が表示されたら、「mnist.zip」の圧縮を展開したファイルをアップロード画面にドラッグアンドドロップします。
    6. [転送開始] ボタンをクリックします。
    7. アップロードが完了したら [確認] ボタンをクリックします。
      af-df-mnist_01_vpc_ko

    Step 6. シングルバッチとしてジョブを提出

    シングルバッチとしてジョブを提出する方法は以下のとおりです。

    1. NAVERクラウドプラットフォームコンソールで、Services > Big Data & Analytics > Data Forest > AI Forest > Workspace Browserメニューを順にクリックします。
    2. アカウントを選択してワークスペースを選択します。
    3. 実行するファイルを選択して [実行] ボタンをクリックします。
    4. 以下のように情報を入力します。
      af-singlebatch_06_vpc_ko

    5.[確認] ボタンをクリックします。DLアプリが実行されます。

    Step 7. ジョブログと結果の確認

    ジョブの実行後、実行ログを確認する方法は以下のとおりです。

    1. NAVERクラウドプラットフォームコンソールで、Services > Big Data & Analytics > Data Forest > Appメニューを順にクリックします。
    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_ko.png
    7. ジョブが完了して結果を確認するには、{ワークスペースの作成時に出力HDFSパスに入力したパス}/{--log_dirパラメータで渡した値}のパスを確認します。
      df-af-mnist_result_vpc_ko.png

    この記事は役に立ちましたか?

    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.