質問編集履歴
1
コードを修正し動作確認を行いました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
Kerasで
|
2
|
+
Kerasで作成したモデル(学習済みEfficientNetB0 + 全結合層)について以下の2つを実現したいです。
|
3
3
|
1. **model.summary()で全結合層の詳細を表示したい**
|
4
4
|
model.summary()すると、EfficientNetの構造は表示される一方で全結合層はひとまとめにSequentialと表示されます。
|
5
5
|
こちらも同程度の粒度(Conv2DやActivation単位)で表示したいです。
|
@@ -8,12 +8,15 @@
|
|
8
8
|
現状model.layers.pop()するとSequentialごと削除されてしまいます。
|
9
9
|
|
10
10
|
###モデル
|
11
|
-
モデルは以下のように作成し
|
11
|
+
モデルは以下のように作成しました。
|
12
12
|
```
|
13
|
-
from keras.models import Sequential, Model
|
13
|
+
from keras.models import Sequential, Model, load_model
|
14
14
|
from keras.layers import Flatten, Dense,Input, Dropout
|
15
15
|
from efficientnet.keras import EfficientNetB0
|
16
|
+
from keras import optimizers
|
16
17
|
|
18
|
+
|
19
|
+
input_shape = (9, 128, 3)
|
17
20
|
input_tensor = Input(shape=input_shape)
|
18
21
|
# EfficientNetB0
|
19
22
|
main_model = EfficientNetB0(include_top=False, weights='imagenet',input_tensor=input_tensor)
|
@@ -25,18 +28,21 @@
|
|
25
28
|
top_model.add(Dropout(0.5))
|
26
29
|
top_model.add(Dense(2, activation='softmax'))
|
27
30
|
|
28
|
-
top_model = Model(
|
31
|
+
top_model = Model(inputs=main_model.input, outputs=top_model(main_model.output))
|
29
32
|
top_model.compile(loss='categorical_crossentropy',optimizer=optimizers.SGD(lr=1e-3, momentum=0.9),metrics=['accuracy'])
|
30
33
|
|
34
|
+
path_model = "./models/EfficientNetB0_FC_not_work.h5"
|
35
|
+
top_model.save(path_model)
|
36
|
+
|
31
37
|
```
|
32
38
|
|
33
39
|
### 発生している問題・エラーメッセージ
|
34
40
|
**1について**
|
35
41
|
|
36
|
-
上で作成
|
42
|
+
上で作成したモデルを読み込みmodel.summary()を表示したところ、以下のように全結合層はひとまとめにSequentialとなりました。
|
37
43
|
```
|
38
|
-
|
44
|
+
path_model = "./models/EfficientNetB0_FC_not_work.h5"
|
39
|
-
model =
|
45
|
+
model = load_model(path_model, compile=False)
|
40
46
|
print(model.summary())
|
41
47
|
```
|
42
48
|
```
|
@@ -70,6 +76,8 @@
|
|
70
76
|
Total params: 5,361,054
|
71
77
|
Trainable params: 5,319,038
|
72
78
|
Non-trainable params: 42,016
|
79
|
+
__________________________________________________________________________________________________
|
80
|
+
None
|
73
81
|
```
|
74
82
|
|
75
83
|
**2について**
|
@@ -104,10 +112,11 @@
|
|
104
112
|
top_bn (BatchNormalization) (None, 1, 4, 1280) 5120 top_conv[0][0]
|
105
113
|
__________________________________________________________________________________________________
|
106
114
|
top_activation (Activation) (None, 1, 4, 1280) 0 top_bn[0][0]
|
107
|
-
==================================================================================================
|
108
115
|
Total params: 4,049,564
|
109
116
|
Trainable params: 4,007,548
|
110
117
|
Non-trainable params: 42,016
|
118
|
+
__________________________________________________________________________________________________
|
119
|
+
None
|
111
120
|
```
|
112
121
|
|
113
122
|
### 補足情報
|