- 印刷する
- PDF
TensorFlowでMNIST手書き画像を分類する
- 印刷する
- PDF
VPC環境で利用できます。
Data Forestを使用してシングルバッチとしてジョブを提出する方法を説明します。
Step 1. アカウントの作成
- Data Forestアカウントを作成する方法はアカウントの作成と管理をご参照ください。
- アプリを作成する方法はアプリの作成と管理をご参照ください。
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. ワークスペースの作成
ワークスペースを作成する方法は以下のとおりです。
NAVERクラウドプラットフォームコンソールで、Services > Big Data & Analytics > Data Forestメニューを順にクリックします。
AI Forest > Workspace > [ワークスペースの作成] > [Advancedワークスペース] をクリックします。
Data Forestアカウントを選択してワークスペース名を設定し、ワークスペースタイプは「Singlebatch」を選択します。
DockerイメージはTensorFlowを選択します。
参考TensorFlowはGoogleが開発したオープンソース機械学習ライブラリです。TensorFlowについての詳しい説明はTensorFlowの公式サイトをご参照ください。
. イメージのバージョンを選択します。
この例ではr2.1を選択します。
GPUモデルの名前、GPUコア数、メモリ容量を選択します。
この例ではデフォルト設定値で行います。
データの設定領域に情報を入力して [追加] ボタンをクリックします。
- 入力:「/user/{username}/data_in」、「data_in」
- 出力:「/user/{username}/data_out」、「data_out」
[次へ] ボタンをクリックします。ワークスペース作成が完了します。
Step 4. サンプルコードのダウンロード
ワークスペースのDockerイメージとバージョンに合わせてサンプルファイルをダウンロードします。
以下は、例を実行するために必要なサンプルコードです。
バージョン | ファイル |
---|---|
Tensorflow-r1.14 | mnist_tf1.zip |
Tensorflow-r2.1 | mnist_tf2.zip |
Tensorflow-r2.3.1 | mnist_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にアップロードする方法は以下のとおりです。
- NAVERクラウドプラットフォームコンソールで、Services > Big Data & Analytics > Data Forestメニューを順にクリックします。
- AI Forest > Workspaceをクリックします。
- アカウントを選択してワークスペース名の横のワークスペースリンクアイコンをクリックします。
- ファイルをアップロードするワークスペースを選択して [アップロード] アイコンをクリックします。
- アップロード画面が表示されたら、「mnist.zip」の圧縮を展開したファイルをアップロード画面にドラッグアンドドロップします。
- [転送開始] ボタンをクリックします。
- アップロードが完了したら [確認] ボタンをクリックします。
Step 6. シングルバッチとしてジョブを提出
シングルバッチとしてジョブを提出する方法は以下のとおりです。
- NAVERクラウドプラットフォームコンソールで、Services > Big Data & Analytics > Data Forest > AI Forest > Workspace Browserメニューを順にクリックします。
- アカウントを選択してワークスペースを選択します。
- 実行するファイルを選択して [実行] ボタンをクリックします。
- 以下のように情報を入力します。
5.[確認] ボタンをクリックします。DLアプリが実行されます。
Step 7. ジョブログと結果の確認
ジョブの実行後、実行ログを確認する方法は以下のとおりです。
- NAVERクラウドプラットフォームコンソールで、Services > Big Data & Analytics > Data Forest > Appメニューを順にクリックします。
- アカウントを選択して詳細情報を確認するアプリをクリックします。
- アプリの詳細情報でQuick Links > AppMaster UI項目のURLにアクセスします。
- ログイン画面が表示されたら、Data Forestアカウントの作成時に入力したアカウント名とパスワードを入力します。
- Applicationsメニューでジョブの実行時に入力したアプリ名で実行されたIDを探してクリックします。
- そのアプリケーションIDのLogsをクリックします。実行したジョブのログを確認できます。
- ジョブが完了して結果を確認するには、
{ワークスペースの作成時に出力HDFSパスに入力したパス}/{--log_dirパラメータで渡した値}
のパスを確認します。