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

質問編集履歴

4

別の結果を追記

2020/10/09 08:06

投稿

ThoughtKnotSeer
ThoughtKnotSeer

スコア14

title CHANGED
File without changes
body CHANGED
@@ -70,38 +70,17 @@
70
70
 
71
71
  追記
72
72
  -----
73
+ 仕方ないので特徴ベクトルで学習させた全結合層と畳み込み層(imagenet学習済みResnet)を結合させてFine tuningを行ってみましたが、
74
+ 不思議な結果になりました。
73
75
  ```python
76
+ model.evaluate(test_image, test_encord)
77
+ # [0.2531382454914993, 0.6142322]
74
- model = resnet.ResNet152(weights='imagenet', include_top=False, pooling="avg")
78
+ model.fit(train_image, train_encord, epochs=3, batch_size=16,validation_split=0.1)
79
+ # 2160/2160 [==============================] - 93s 43ms/sample - loss: 1.5922 - total_acc: 0.2333 - val_loss: 0.2954 - val_total_acc: 0.5643
80
+ model.evaluate(test_image, test_encord)
81
+ # [0.2892280397343725, 0.54681647]
75
- image_feature = model.predict(image_data, verbose=1)
82
+ model.evaluate(train_image, train_encord)
76
- pc = PCA(n_components=2).fit_transform(image_feature)
77
- pc1, pc2 = pc[:,0],pc[:,1]
83
+ # [0.2311001866869706, 0.6222407]
78
- plt.scatter(pc1, pc2, c=np.sum(encorded,axis=1), cmap="jet")
79
- plt.colorbar()
80
- plt.show()
81
84
  ```
82
- preprocess無し
83
- ![イメージ説明](97f09c6d97846ff3cf0894564ddbab56.png)
84
- preprocessあり
85
- ![イメージ説明](51dfa49c1eac6b343416a5d31763f07d.png)
86
- ---
87
- Preprocess_inputの検証
88
- ```python
89
- resnet.preprocess_input(image_array)
90
- train_image, test_image, train_score, test_score = train_test_split(image_array, encorded, test_size=0.1, random_state=100)
91
- conv_model = resnet.ResNet152(weights='imagenet', include_top=False, pooling="avg",input_shape=(224,224,3))
92
- conv_model.trainable = False
93
-
94
- top_model = Sequential()
95
- top_model.add(Input(2048))
96
- top_model.add(Dense(256, activation="relu"))
97
- top_model.add(Dropout(0.5))
98
- top_model.add(Dense(4, activation="sigmoid"))
85
+ 悪い方向に学習するだけでなく、進捗で表示される結果とevaluateの結果が異なる等、何が起きているのか良く分かりません。
99
-
100
- model = Sequential([conv_model,top_model])
101
-
102
- model.compile(optimizer="adam",
103
- loss="binary_crossentropy",
104
- metrics=[total_acc])
105
- history = model.fit(train_image, train_score, epochs=20, batch_size=16,validation_split=0.1)
86
+ バグのような気もしてきたので環境を変えてみようかと思いますが、質問は数日で打ち切らせていただき、Tensorflowのコミュニティで聞いてみることにします。ありがとうございました。
106
- ```
107
- ![イメージ説明](cd4dcef334151010c931b79fa62f6dd4.png)

3

Preprocess_inputの検証を追加

2020/10/09 08:06

投稿

ThoughtKnotSeer
ThoughtKnotSeer

スコア14

title CHANGED
File without changes
body CHANGED
@@ -82,4 +82,26 @@
82
82
  preprocess無し
83
83
  ![イメージ説明](97f09c6d97846ff3cf0894564ddbab56.png)
84
84
  preprocessあり
85
- ![イメージ説明](51dfa49c1eac6b343416a5d31763f07d.png)
85
+ ![イメージ説明](51dfa49c1eac6b343416a5d31763f07d.png)
86
+ ---
87
+ Preprocess_inputの検証
88
+ ```python
89
+ resnet.preprocess_input(image_array)
90
+ train_image, test_image, train_score, test_score = train_test_split(image_array, encorded, test_size=0.1, random_state=100)
91
+ conv_model = resnet.ResNet152(weights='imagenet', include_top=False, pooling="avg",input_shape=(224,224,3))
92
+ conv_model.trainable = False
93
+
94
+ top_model = Sequential()
95
+ top_model.add(Input(2048))
96
+ top_model.add(Dense(256, activation="relu"))
97
+ top_model.add(Dropout(0.5))
98
+ top_model.add(Dense(4, activation="sigmoid"))
99
+
100
+ model = Sequential([conv_model,top_model])
101
+
102
+ model.compile(optimizer="adam",
103
+ loss="binary_crossentropy",
104
+ metrics=[total_acc])
105
+ history = model.fit(train_image, train_score, epochs=20, batch_size=16,validation_split=0.1)
106
+ ```
107
+ ![イメージ説明](cd4dcef334151010c931b79fa62f6dd4.png)

2

コードミスを修正

2020/10/06 06:32

投稿

ThoughtKnotSeer
ThoughtKnotSeer

スコア14

title CHANGED
File without changes
body CHANGED
@@ -43,9 +43,6 @@
43
43
  top_model.add(Dense(256, activation="relu"))
44
44
  top_model.add(Dropout(0.5))
45
45
  top_model.add(Dense(4, activation="sigmoid"))
46
- top_model.compile(optimizer="adam",
47
- loss="binary_crossentropy",
48
- metrics=[total_acc])
49
46
 
50
47
  model = Sequential([conv_model,top_model])
51
48
 

1

preprocess_input有無の差について追記

2020/10/06 05:44

投稿

ThoughtKnotSeer
ThoughtKnotSeer

スコア14

title CHANGED
File without changes
body CHANGED
@@ -69,4 +69,20 @@
69
69
  この2つのモデルの違い、精度を上げる方法、コードの不適切な点等、ご教授いただきたいです。
70
70
 
71
71
  tensorflow version2.1.0のtf.kerasを使っています。
72
- 宜しくお願いします。
72
+ 宜しくお願いします。
73
+
74
+ 追記
75
+ -----
76
+ ```python
77
+ model = resnet.ResNet152(weights='imagenet', include_top=False, pooling="avg")
78
+ image_feature = model.predict(image_data, verbose=1)
79
+ pc = PCA(n_components=2).fit_transform(image_feature)
80
+ pc1, pc2 = pc[:,0],pc[:,1]
81
+ plt.scatter(pc1, pc2, c=np.sum(encorded,axis=1), cmap="jet")
82
+ plt.colorbar()
83
+ plt.show()
84
+ ```
85
+ preprocess無し
86
+ ![イメージ説明](97f09c6d97846ff3cf0894564ddbab56.png)
87
+ preprocessあり
88
+ ![イメージ説明](51dfa49c1eac6b343416a5d31763f07d.png)