teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

コードを修正し動作確認を行いました。

2021/07/17 03:21

投稿

asdf1016
asdf1016

スコア14

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,5 @@
1
1
  ### 前提・実現したいこと
2
- Kerasでファインチューニングしたモデル(学習済みEfficientNetB0 + 全結合層)について以下の2つを実現したいです。
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(input=main_model.input, output=top_model(main_model.output))
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
- 上で作成、ファインチューニングしたモデルを読み込みmodel.summary()を表示したところ、以下のように全結合層はひとまとめにSequentialとなりました。
42
+ 上で作成したモデルを読み込みmodel.summary()を表示したところ、以下のように全結合層はひとまとめにSequentialとなりました。
37
43
  ```
38
- Path_MODEL = "./models/EfficientNetB0_3channel_5epochs.h5"
44
+ path_model = "./models/EfficientNetB0_FC_not_work.h5"
39
- model = keras.models.load_model(Path_MODEL, compile=False)
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
  ### 補足情報