わからないこと
140608174385808
とタプルのNone
が何を示しているのか分からない。
行ったこと
kerasの学習モデルを可視化しようと
python
1plot_model(model, show_shapes=True, show_layer_names=True)
を実行してみたところ、以下の画像が得られました。
各層の値のタプル(1層目のINPUTであれば(None, 160, 120, 1)
)のうち、160, 120, 1の部分については画像の横幅、縦幅、グレースケールか3色か、というところまでは分かりました。
ですが、最上位の140608174385808
とタプルのNone
が何を示しているのか分かりません。
様々なサイトを調べましたが最上位に数字が出ているものは無かったのでmodelの定義の仕方が悪いのでしょうか?
modelの定義は
python
1options = { 2 "filters": 64, 3 "kernel_size": 3, 4 "padding": "same", 5 "activation": "relu", 6 "input_shape": (160, 120, 1) 7 } 8dropout = 0.3 9 10model = Sequential() 11model.add(Conv2D(**options)) 12model.add(Dropout(dropout)) 13# 2回目以降のConv2Dではinput_shapeがいらないのでdelする 14del options["input_shape"] 15model.add(Conv2D(**options)) 16model.add(Dropout(dropout)) 17model.add(Conv2D(**options)) 18model.add(Dropout(dropout)) 19model.add(MaxPooling2D(pool_size=2)) 20 21model.add(Conv2D(**options)) 22model.add(Dropout(dropout)) 23model.add(Conv2D(**options)) 24model.add(Dropout(dropout)) 25model.add(Conv2D(**options)) 26model.add(Dropout(dropout)) 27model.add(MaxPooling2D(pool_size=2)) 28 29model.add(Flatten()) 30model.add(Dense(256, activation="relu")) 31model.add(Dense(256, activation="relu")) 32model.add(Dense(17, activation="softmax")) 33
で行っています。
追記
実際のコードを貼ると400行近くなるので一部だけ書き出しました(実行すると同じような画像が出力されます(数字の値が若干異なりますが...))
python
1import keras 2 3from keras.layers import Conv2D, Dense, Dropout, Flatten, MaxPooling2D 4from keras.models import Sequential 5from keras.optimizers import Adam, RMSprop 6from keras.utils import plot_model 7 8if __name__ == "__main__": 9 options = { 10 "filters": 64, 11 "kernel_size": 3, 12 "padding": "same", 13 "activation": "relu", 14 "input_shape": (160, 120, 1) 15 } 16 dropout = 0.3 17 18 model = Sequential() 19 model.add(Conv2D(**options)) 20 model.add(Dropout(dropout)) 21 # 2回目以降のConv2Dではinput_shapeがいらないのでdelする 22 del options["input_shape"] 23 model.add(Conv2D(**options)) 24 model.add(Dropout(dropout)) 25 model.add(Conv2D(**options)) 26 model.add(Dropout(dropout)) 27 model.add(MaxPooling2D(pool_size=2)) 28 29 model.add(Conv2D(**options)) 30 model.add(Dropout(dropout)) 31 model.add(Conv2D(**options)) 32 model.add(Dropout(dropout)) 33 model.add(Conv2D(**options)) 34 model.add(Dropout(dropout)) 35 model.add(MaxPooling2D(pool_size=2)) 36 37 model.add(Flatten()) 38 model.add(Dense(256, activation="relu")) 39 model.add(Dense(256, activation="relu")) 40 model.add(Dense(17, activation="softmax")) 41 42 model.compile(loss="categorical_crossentropy", 43 optimizer=Adam(), 44 metrics=["accuracy"]) 45 46 plot_model(model, 47 show_shapes=True, 48 show_layer_names=True, 49 to_file="test.png")
環境は
OS | Ubuntu 18.04.3 LTS |
---|---|
tensorflow-gpu | 1.14.0 |
Keras | 2.2.4 |
回答1件
あなたの回答
tips
プレビュー