MNIST手書き数字読み取り

ローカルではメモリー不足などで実行できないが、GoogleのColaboratoryでは実行出来る。tensorflowでMNISTの数字を表示して、ニューラルネットワークでトレーニングして、テストデータの予測を行う。

import tensorflow
from tensorflow import keras
%matplotlib inline
import matplotlib.pyplot as plt

batch_size = 128
num_class = 10
epochs = 20

(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()

for i in range(10):
    plt.subplot(2, 5, i+1)
    plt.title("Label: " + str(i))
    plt.imshow(x_train[i].reshape(28,28), cmap=None)

x_train, x_test = x_train / 255.0, x_test / 255.0

model = keras.models.Sequential([
    keras.layers.Flatten(),
    keras.layers.Dense(512, activation='relu'),
    keras.layers.Dropout(0.2),
    keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',loss='sparse_categorical_crossentropy', metrics=['accuracy’])
model.fit(x_train, y_train, epochs=20)
model.evaluate(x_test, y_test)

for i in range(10):
    plt.subplot(2, 5, i+1)
    plt.title("Label: " + str(i))
    plt.imshow(x_train[i].reshape(28,28), cmap=None)

model.predict(x_test[0:10])

写真をムンクの叫びの画風に変換してみた

tensorflowで写真をムンクの叫びの画風に変換してみた。

コードはGitHubで公開されている。
https://github.com/lengstrom/fast-style-transfer

特定の画風毎にチェックポイント(.ckpt)ファイルとして提供される。
チェックポイントファイルとは、学習の結果を保存したもの。写真と画風を指定して、プログラムを実行すると写真を指定した画風に変換されて生成する。変換プログラムはevaluate.py。コマンドラインより以下の書式で実行する。

python evaluate.py 
    --checkpoint [画風].ckpt 
    --in-path ./[変換前].jpg 
    --out-path ./[変換後].jpg

動画についても同様の変換が可能だが、GPUが必須で、無いと数ヶ月の時間を要するらしいので断念。