TensorFlow 2.0 : Beginner Tutorials : データのロードと前処理 :- NumPy データをロードする (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 10/06/2019
* 本ページは、TensorFlow org サイトの TF 2.0 – Beginner Tutorials – Load and preprocess data の以下のページを
翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
★ 無料セミナー開催中 ★ クラスキャット主催 人工知能 & ビジネス Web セミナー
人工知能とビジネスをテーマにウェビナー (WEB セミナー) を定期的に開催しています。スケジュールは弊社 公式 Web サイト でご確認頂けます。
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
- Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション |
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/ |
Facebook: https://www.facebook.com/ClassCatJP/ |
データのロードと前処理 :- NumPy データをロードする
このチュートリアルは NumPy 配列からデータを tf.data.Dataset にロードするサンプルを提供します。
このサンプルは .npz ファイルから MNIST データセットをロードします。けれども、NumPy 配列のソースは重要ではありません。
セットアップ
from __future__ import absolute_import, division, print_function, unicode_literals import numpy as np import tensorflow as tf
.npz ファイルからロードする
DATA_URL = 'https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz' path = tf.keras.utils.get_file('mnist.npz', DATA_URL) with np.load(path) as data: train_examples = data['x_train'] train_labels = data['y_train'] test_examples = data['x_test'] test_labels = data['y_test']
tf.data.Dataset で NumPy 配列をロードする
サンプルの配列と対応するラベルの配列を持つと仮定して、tf.data.Dataset を作成するために 2 つの配列をタプルとして tf.data.Dataset.from_tensor_slices に渡します。
train_dataset = tf.data.Dataset.from_tensor_slices((train_examples, train_labels)) test_dataset = tf.data.Dataset.from_tensor_slices((test_examples, test_labels))
データセットを使用する
データセットをシャッフルしてバッチ処理する
BATCH_SIZE = 64 SHUFFLE_BUFFER_SIZE = 100 train_dataset = train_dataset.shuffle(SHUFFLE_BUFFER_SIZE).batch(BATCH_SIZE) test_dataset = test_dataset.batch(BATCH_SIZE)
モデルを構築して訓練する
Build and train a model
model = tf.keras.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ]) model.compile(optimizer=tf.keras.optimizers.RMSprop(), loss=tf.keras.losses.SparseCategoricalCrossentropy(), metrics=[tf.keras.metrics.SparseCategoricalAccuracy()])
model.fit(train_dataset, epochs=10)
Epoch 1/10 938/938 [==============================] - 4s 4ms/step - loss: 3.5160 - sparse_categorical_accuracy: 0.8780 Epoch 2/10 938/938 [==============================] - 2s 2ms/step - loss: 0.5325 - sparse_categorical_accuracy: 0.9291 Epoch 3/10 938/938 [==============================] - 2s 2ms/step - loss: 0.3963 - sparse_categorical_accuracy: 0.9459 Epoch 4/10 938/938 [==============================] - 2s 2ms/step - loss: 0.3349 - sparse_categorical_accuracy: 0.9555 Epoch 5/10 938/938 [==============================] - 2s 2ms/step - loss: 0.2991 - sparse_categorical_accuracy: 0.9609 Epoch 6/10 938/938 [==============================] - 2s 2ms/step - loss: 0.2837 - sparse_categorical_accuracy: 0.9643 Epoch 7/10 938/938 [==============================] - 2s 2ms/step - loss: 0.2512 - sparse_categorical_accuracy: 0.9675 Epoch 8/10 938/938 [==============================] - 2s 2ms/step - loss: 0.2379 - sparse_categorical_accuracy: 0.9701 Epoch 9/10 938/938 [==============================] - 2s 2ms/step - loss: 0.2259 - sparse_categorical_accuracy: 0.9726 Epoch 10/10 938/938 [==============================] - 2s 2ms/step - loss: 0.2051 - sparse_categorical_accuracy: 0.9743 <tensorflow.python.keras.callbacks.History at 0x7f96b4ae30b8>
model.evaluate(test_dataset)
157/157 [==============================] - 0s 2ms/step - loss: 0.4985 - sparse_categorical_accuracy: 0.9615 [0.4984860098452034, 0.9615]
以上