トップページ -> データベース関連技術 -> Keras の体験,応用例 -> TensorFlow, Keras を扱う(乱数での合成データと,Google Colab を利用)
[サイトマップへ], [サイト内検索へ]

TensorFlow, Keras を扱う(乱数での合成データと,Google Colab を利用)

ニューラルネットワークの作成,訓練(学習),予測を行う. MNIST データセット,Fashion MNIST データセットを使用する.

サイト内の関連ページ

謝辞

参考Webページ: 「https://keras.io/ja/」の「30 秒で Keras に入門しましょう」 に記載のソースコードを書き換えて使っている.


ニューラルネットワークの作成,訓練(学習),予測

ここで作成するニューラルネットワーク

[image]

手順

  1. Google Colab のWebページを開く

    https://colab.research.google.com

    Google Colab はオンラインの Python 開発環境. 使用するには Google アカウントが必要

  2. ファイル」で、「PYTHON 3 の新しいノートブックの新規作成」を選ぶ

    [image]
  3. Google アカウントでのログインが求められたときはログインする

    [image]

    [image]
  4. パッケージのインポートと TensorFlow のバージョン確認
    from __future__ import absolute_import, division, print_function, unicode_literals
    import tensorflow.compat.v2 as tf
    import tensorflow_datasets as tfds
    import numpy as np
    import matplotlib.pyplot as plt
    tf.enable_v2_behavior()
    
    print(tf.__version__)
    

    [image]
  5. ニューラルネットワークの作成
    • ニューラルネットワークの種類: 層構造 (Sequential Model)
    • ニューラルネットワークの構成
      • 入力の次元数: 100
      • 入力層のユニット(ニューロン)の個数: 64(1層)
      • 出力層のユニット(ニューロン)の個数: 10
      • 出力層のユニット(ニューロン)の種類: softmax (活性化するのは一度に1つ)
    m = tf.keras.Sequential()
    m.add(tf.keras.layers.Dense(units=64, input_dim=100, activation=tf.nn.relu))
    m.add(tf.keras.layers.Dropout(rate=0.2))
    m.add(tf.keras.layers.Dense(units=10, activation=tf.nn.softmax))
    m.compile(optimizer=tf.keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True),
              loss='sparse_categorical_crossentropy')
    

    [image]
  6. ニューラルネットワークの確認表示
    print(m.summary())
    

    [image]
  7. モデルの可視化

    参考Webページ: 訓練の履歴の可視化については,https://keras.io/ja/visualization/

    from IPython.display import SVG
    
    SVG(tf.keras.utils.model_to_dot(m).create(prog='dot', format='svg'))
    

    [image]
  8. ニューラルネットワークの訓練(学習)を行う

    ここでは,TensorFlow, Keras の使い方の練習のため,データは乱数で合成している.

    x_train = np.random.rand(10000, 100);
    y_train = np.floor(np.random.rand(10000, 1) * 10)
    x_test = np.random.rand(5000, 100);
    y_test = np.floor(np.random.rand(5000, 1) * 10)
    history = m.fit(x_train, y_train, epochs=50)
    

    [image]
  9. テスト用データセットで評価する

    ※ 訓練(学習)などで乱数が使われるので,下図と違う値になる.

    print( m.evaluate(x_test, y_test) )
    

    [image]
  10. ニューラルネットワークを使ってみる

    テスト画像を,ニューラルネットワークに与えて,予測させる

    ※ 訓練(学習)などで乱数が使われるので,下図と違う値になる.

    predictions = m.predict( x_test )
    print( predictions[0] )
    

    [image]
  11. 正解表示

    テスト画像 0 番の正解を表示

    print( y_test[0] )
    

    [image]
  12. 訓練の履歴の可視化

    参考Webページ: 訓練の履歴の可視化については,https://keras.io/ja/visualization/


本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

問い合わせ先: 金子邦彦(かねこ くにひこ) [image]