面白いので
print(model.summary())
してみると以下のように素朴な感じだ。
Model: "model_1" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= input_1 (InputLayer) [(None, 64, 64, 1)] 0 _________________________________________________________________ gaussian_noise_1 (GaussianNo (None, 64, 64, 1) 0 _________________________________________________________________ conv2d_1 (Conv2D) (None, 64, 64, 16) 160 _________________________________________________________________ batch_normalization_1 (Batch (None, 64, 64, 16) 64 _________________________________________________________________ activation_1 (Activation) (None, 64, 64, 16) 0 _________________________________________________________________ max_pooling2d_1 (MaxPooling2 (None, 32, 32, 16) 0 _________________________________________________________________ conv2d_2 (Conv2D) (None, 32, 32, 32) 4640 _________________________________________________________________ batch_normalization_2 (Batch (None, 32, 32, 32) 128 _________________________________________________________________ activation_2 (Activation) (None, 32, 32, 32) 0 _________________________________________________________________ max_pooling2d_2 (MaxPooling2 (None, 16, 16, 32) 0 _________________________________________________________________ conv2d_3 (Conv2D) (None, 16, 16, 64) 18496 _________________________________________________________________ batch_normalization_3 (Batch (None, 16, 16, 64) 256 _________________________________________________________________ activation_3 (Activation) (None, 16, 16, 64) 0 _________________________________________________________________ max_pooling2d_3 (MaxPooling2 (None, 8, 8, 64) 0 _________________________________________________________________ conv2d_4 (Conv2D) (None, 8, 8, 128) 73856 _________________________________________________________________ batch_normalization_4 (Batch (None, 8, 8, 128) 512 _________________________________________________________________ activation_4 (Activation) (None, 8, 8, 128) 0 _________________________________________________________________ max_pooling2d_4 (MaxPooling2 (None, 4, 4, 128) 0 _________________________________________________________________ flatten_1 (Flatten) (None, 2048) 0 _________________________________________________________________ dropout_1 (Dropout) (None, 2048) 0 _________________________________________________________________ predictions (Dense) (None, 411) 842139 ================================================================= Total params: 940,251 Trainable params: 939,771 Non-trainable params: 480 _________________________________________________________________ None
https://github.com/OsciiArt/DeepAA/blob/master/model/model_light.json の通りのネットワークだとは思うのだが、json のままでは見にくいのでロードしてサマリを見た。この頃のネットワークは結構畳み込みを重ねているだけに見えるのに、画像分類から物体検出、アスキーアート生成までこなしてしまうので大変不思議な気がする。