機械学習のExampleから覚えるPython(数値演算子)

今までPythonを感覚的に使っていたので、改めて文法を知ろうかなと。
その際にいま流行りの機械学習(深層学習)のExampleを例にすると
わかりやすいのかなと思ったので書いてみる。

※基本的には Python3.x系のつもりで記載してます

Example

https://www.tensorflow.org/tutorials/ に記載されている

import tensorflow as tf
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(),
  tf.keras.layers.Dense(512, activation=tf.nn.relu),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)

※本記事記載の時点のコードです。

数値演算子

x_train, x_test = x_train / 255.0, x_test / 255.0

x_train, x_testデータすべてに 255.0の除算を行ってます。
これは、元の値が0-255の範囲で定義されているため、0-1に変換しています。

除算するまえであれば、以下のコードを入力すると uint8と表示されると思います。

print(x_train.dtype)

では、除算後はというと float64になっていると思います。
これは、255.0という値が float64と認識されているからになります。

正確には uint8float64にキャストされて計算されています。

種類

演算子 説明
+ a + b 足し算
a – b 引き算
* a*b 掛け算
/ a/b 割り算
// a//b aをbで割った整数値(少数点以下削除
% a%b aをbで割った時の割り切れなかった余り
** a**n aをn回掛けた数(べき乗)

他にも ビット演算子, 比較演算子などありますが、
Exampleコードに出てきてから書こうと思います。