Python Colaboratory

全結合モデル後半作成

ここまで、全結合モデル作成の前半を作成しました。
引き続き、後半部分を作成します。
Dense 層を作ります。

  1. Dense 層1

    Dense 層1を規定します。
    第1引数は units(出力次元数)
    その層から出力される次元数を正の整数値で指定します。
    ざっくり言えばニューロンの数と考えて良いです。
    今回の場合は、Dense1層は次の Dense2層に対して20本出力しています。
    なので units = 20です。
    20個のデータを出力するのでこの層は 20次元となります。
    第2引数は activation(活性化関数)です。
    今回は、tanh を使用します。
    第3引数は kernel_initializer(重みの初期化の方法)です。
    zeros:すべてを0に初期化
    ones : すべてを1に初期化
    これはどちらにするか難しいです。
    運しだいです。
    失敗すると大域最適解が見つかりません。
    今回は
    kernel_initializer='zeros'
    とします。
    kernel_initializer='ones'
    は失敗します。
    'zeros' の方がうまく行く確率が高いようです。
    Dense 層1をまとめると次のようになります。

      
    x = layers.Dense(
        20,
        activation="tanh",
        kernel_initializer='zeros'
        )(x)
    
  2. Dense 層2

    Dense 層2は Outputs(出力層)です。
    RNN の場合、この層には活性化関数を設定せず、単に units(出力次元数)を1とするだけ なのが一般的なようです。
    outputs = layers.Dense(1)(x)

  3. モデル確定

    モデルを確定します。
    model = keras.Model(inputs, outputs)
    モデルがどのようにできたか見てみましょう。
    print(model.summary())

全結合モデルまとめ

本モデルファイルをまとめます。
ファイル名は keras-test-52.ipynb としそのファイル内容をまとめると、以下のようになります。


from tensorflow import keras
from keras import layers
from keras import initializers

sequence_length = 20
inputs = keras.Input(shape=(sequence_length,))
x = layers.Flatten()(inputs)
x = layers.Dense(
    20,
    activation="tanh",
    kernel_initializer='zeros'
    )(x)
outputs = layers.Dense(1)(x)
model = keras.Model(inputs, outputs)
print("モデルア-キテクチャ")
print(model.summary())

全結合モデルファイル動作確認

全結合モデルファイルが完成しましたので Colab の中で動かしてみましょう。
Colab 内の左上隅にある「ファイル」から「ノ-トブックを新規作成」をクリック。
上記ファイル内容をコピしてこれをノートブックの画面内のボックス(セル)のなかに 貼付け[Ctrl + v]ます。
画面上部のファイル名をクリックして、ファイル名を
keras-test-52.ipynb
に変更します。
その後、▷ をクリックして動作させます。
下記のようになるはずです。


  • keras-test-52 動作確認

  • 結果をみると
    dense のパラメータ数(重み行列のサイズ)は
    20×(20 + 1) = 420
    となっています。
    (20 + 1)となっているのはバイアスも重みに含めているためです。
    ユーザはバイアスの存在を気にする必要はありませんが 裏ではバイアスも考慮されていることがパラメータ数からわかります。
    なお、model や dense には番号が付与されますがこの値は実行するたびに増えていきます。

    ここまでで、全結合モデルファイルが完成しました。
    引き続き、コ-ルバックを使用します。


  • コ-ルバックを使用 に進む
  • 大域最適解みつからず に戻る
  • Keras モデルの構築 に戻る
  • keras-test-51 動作確認 に戻る
  • 各デ-タセットの内容表示 に戻る
  • 3種の timeseries_dataset デ-タを作成 に戻る
  • CSV timeseries_dataset まとめ に戻る
  • CSV デ-タ timeseries_dataset 作成 に戻る
  • 標準化した dummy_dataset を作成 に戻る
  • dummy_dataset の内容表示 に戻る
  • RNN の理解-Ⅱ に戻る
  • 時系列のためのディ-プラ-ニング に戻る
  • ロ-ソク足表示ファイルまとめ に戻る
  • ロ-ソク足本体の表示 に戻る
  • Colab で mplfinance を使用 に戻る
  • CSV ファイルの読込 に戻る
  • Colab を始める に戻る
  • 70VPS に戻る