イントロダクション
Tensorflowでの計算処理をするのに色々試したけど結局はチュートリアルを見るのが一番ということになりました。
そしてここから学習を始めるように書いてあったので、そのようにします。
tensorflow.keras ※参考サイト
ここのチュートリアルから始めます。とりあえずは以下のコマンドを叩いてください。
!pip install -q pyyaml
しかし。自分の環境ではうまく行かなかったので以下のコマンドを叩きました。
pip3 install matplotlib
そして改めて「!pip〜」のコマンドを叩きました。しかしエラーが出ました。。。
とりあえずは無視してそのまま実行することにして。。。以下の起動確認をします。
kerasTest.pyを作成しました。下のコードです。
import tensorflow as tf from tensorflow.keras import layers
print(tf.VERSION) print(tf.keras.__version__)
そして実行します
python kerasTest.py
問題なく処理結果が出力されたのでとりあえずは問題なさそうです。
順次モデル※翻訳した時の文言
そして、単純なモデルを作成します。※コピペ
model = tf.keras.Sequential() # Adds a densely-connected layer with 64 units to the model: model.add(layers.Dense(64, activation='relu')) # Add another: model.add(layers.Dense(64, activation='relu')) # Add a softmax layer with 10 output units: model.add(layers.Dense(10, activation='softmax'))
「model = tf.keras.Sequential()」で空のモデルを作ります。ちなみにこの行以降は「何か」をモデルに追加しているのですが、意味はわかりませんでした。
レイヤー
model.add(layers.Dense(XX, activation='関数名')
activation
:レイヤーの起動機能を設定します。このパラメーターは、組み込み関数の名前または呼び出し可能オブジェクトとして指定されています。デフォルトでは、アクティブ化は適用されません。kernel_initializer
そしてbias_initializer
:レイヤーの重みを作り出す初期化スキーム(カーネルとバイアス)。このパラメーターは名前または呼び出し可能オブジェクトです。これはデフォルトで"Glorot uniform"
イニシャライザになります。kernel_regularizer
そしてbias_regularizer
:例えばL1またはL2正則としてレイヤの重み(カーネルとバイアス)、適用正則化スキーム。デフォルトでは、正則化は適用されません。
下はレイヤー作成のサンプルコードです。
# Create a sigmoid layer:
layers.Dense(64, activation='sigmoid')
# Or:
layers.Dense(64, activation=tf.sigmoid)
# A linear layer with L1 regularization of factor 0.01 applied to the kernel matrix:
layers.Dense(64, kernel_regularizer=tf.keras.regularizers.l1(0.01))
# A linear layer with L2 regularization of factor 0.01 applied to the bias vector:
layers.Dense(64, bias_regularizer=tf.keras.regularizers.l2(0.01))
# A linear layer with a kernel initialized to a random orthogonal matrix:
layers.Dense(64, kernel_initializer='orthogonal')
# A linear layer with a bias vector initialized to 2.0s:
layers.Dense(64, bias_initializer=tf.keras.initializers.constant(2.0))
トレーニングと評価
今までの部分を整理します。
# 空のモデル作成 model = tf.keras.Sequential([ # レイヤーを追加 layers.Dense(64, activation='relu'), # もう1つ(なぜ追加しているかは不明) layers.Dense(64, activation='relu'), # ソフトマックスを追加 layers.Dense(10, activation='softmax')]) # 学習プロセスの構成 model.compile(optimizer=tf.train.AdamOptimizer(0.001), loss='categorical_crossentropy', metrics=['accuracy'])
ここまできたら、あとは学習と評価をします。
model.fit(data, labels, epochs=10, batch_size=32)