質問編集履歴
4
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,22 +10,20 @@
|
|
10
10
|
|
11
11
|
実行したモデルはVGG16を用いて学習させました。
|
12
12
|
|
13
|
-
原因は恐らく該当ソースコードとモデルの構造が一致していないことが原因と考えているのですが、
|
14
|
-
|
15
|
-
学習モデルをこれにどう対応させていいのかが分からないです。
|
16
|
-
|
17
13
|
このエラー自体の解決方法などご助言などいただければ幸いです。
|
18
14
|
|
19
15
|
よろしくお願いします。
|
20
16
|
|
21
|
-
|
17
|
+
[追記]
|
18
|
+
|
22
|
-
|
19
|
+
画像分類のコードが以下のリンクにあるutils.pyで動いています。その中の466行目から486行目でckptファイルの読み込みを行っています。
|
20
|
+
|
23
|
-
|
21
|
+
[https://github.com/totti0223/deepstomata/blob/master/deepstomata/utils.py](https://github.com/totti0223/deepstomata/blob/master/deepstomata/utils.py)
|
22
|
+
|
23
|
+
ここのサイト[https://louis-needless.hatenablog.com/entry/notfounderror-bully-me](https://louis-needless.hatenablog.com/entry/notfounderror-bully-me)を参考にarg_scopeをutils.pyの467行目に入れて行いましたが、上手くいきませんでした。
|
24
24
|
|
25
25
|
### 発生している問題・エラーメッセージ
|
26
26
|
|
27
|
-
|
28
|
-
|
29
27
|
```
|
30
28
|
|
31
29
|
>>> from deepstomata import *
|
@@ -150,145 +148,77 @@
|
|
150
148
|
|
151
149
|
```python
|
152
150
|
|
153
|
-
i
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
if
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
conv = tf.nn.conv2d(pool2, kernel, [1, 1, 1, 1], padding='SAME')
|
226
|
-
|
227
|
-
biases = tf.get_variable('biases', shape=[128], initializer=tf.constant_initializer(0.0))
|
228
|
-
|
229
|
-
bias = tf.nn.bias_add(conv, biases)
|
230
|
-
|
231
|
-
conv3 = tf.nn.relu(bias, name=scope.name)
|
232
|
-
|
233
|
-
pool3 = tf.nn.max_pool(conv3, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding='SAME', name='pool3')
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
with tf.variable_scope('conv4') as scope:
|
238
|
-
|
239
|
-
kernel = tf.get_variable('weights', shape=[3, 3, 128, 256], initializer=tf.truncated_normal_initializer(stddev=0.1))
|
240
|
-
|
241
|
-
conv = tf.nn.conv2d(pool3, kernel, [1, 1, 1, 1], padding='SAME')
|
242
|
-
|
243
|
-
biases = tf.get_variable('biases', shape=[256], initializer=tf.constant_initializer(0.0))
|
244
|
-
|
245
|
-
bias = tf.nn.bias_add(conv, biases)
|
246
|
-
|
247
|
-
conv4 = tf.nn.relu(bias, name=scope.name)
|
248
|
-
|
249
|
-
pool4 = tf.nn.max_pool(conv4, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding='SAME', name='pool4')
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
with tf.variable_scope('fc5') as scope:
|
254
|
-
|
255
|
-
dim = 1
|
256
|
-
|
257
|
-
for d in pool4.get_shape()[1:].as_list():
|
258
|
-
|
259
|
-
dim *= d
|
260
|
-
|
261
|
-
reshape = tf.reshape(pool4, [BATCH_SIZE, dim])
|
262
|
-
|
263
|
-
weights = _variable_with_weight_decay('weights', shape=[dim, 1024], stddev=0.02, wd=0.005)
|
264
|
-
|
265
|
-
biases = tf.get_variable('biases', shape=[1024], initializer=tf.constant_initializer(0.0))
|
266
|
-
|
267
|
-
fc5 = tf.nn.relu(tf.nn.bias_add(tf.matmul(reshape, weights), biases), name=scope.name)
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
with tf.variable_scope('fc6') as scope:
|
272
|
-
|
273
|
-
weights = _variable_with_weight_decay('weights', shape=[1024, 256], stddev=0.02, wd=0.005)
|
274
|
-
|
275
|
-
biases = tf.get_variable('biases', shape=[256], initializer=tf.constant_initializer(0.0))
|
276
|
-
|
277
|
-
fc6 = tf.nn.relu(tf.nn.bias_add(tf.matmul(fc5, weights), biases), name=scope.name)
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
with tf.variable_scope('fc7') as scope:
|
282
|
-
|
283
|
-
weights = tf.get_variable('weights', shape=[256, NUM_CLASSES], initializer=tf.truncated_normal_initializer(stddev=0.02))
|
284
|
-
|
285
|
-
biases = tf.get_variable('biases', shape=[NUM_CLASSES], initializer=tf.constant_initializer(0.0))
|
286
|
-
|
287
|
-
fc7 = tf.nn.bias_add(tf.matmul(fc6, weights), biases, name=scope.name)
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
return fc7
|
151
|
+
with vgg.arg_scope(arg_scope):
|
152
|
+
|
153
|
+
net, end_points = vgg.vgg_16.vgg_16_50(input=input)
|
154
|
+
|
155
|
+
def stomata_stat_batch_classify(image, region_number, ckpt_path):
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
'''
|
160
|
+
|
161
|
+
input
|
162
|
+
|
163
|
+
image : image read by scipy. imread if by opencv, bgr to rgb must be performed
|
164
|
+
|
165
|
+
ckpt_path : checkpoint absolute path
|
166
|
+
|
167
|
+
output
|
168
|
+
|
169
|
+
most likely stat of stomata, confidential level of most likely stat of stomata
|
170
|
+
|
171
|
+
'''
|
172
|
+
|
173
|
+
DST_INPUT_SIZE = 56
|
174
|
+
|
175
|
+
NUM_CLASS = 4
|
176
|
+
|
177
|
+
tf.reset_default_graph()
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
image = tf.reshape(image, [-1, DST_INPUT_SIZE, DST_INPUT_SIZE, 3])
|
182
|
+
|
183
|
+
logits = stomata_model.tf_inference(image, region_number, DST_INPUT_SIZE, NUM_CLASS)
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
sess = tf.InteractiveSession()
|
188
|
+
|
189
|
+
saver = tf.train.Saver()
|
190
|
+
|
191
|
+
sess.run(tf.global_variables_initializer())
|
192
|
+
|
193
|
+
if ckpt_path:
|
194
|
+
|
195
|
+
saver.restore(sess, ckpt_path)
|
196
|
+
|
197
|
+
softmax = tf.nn.softmax(logits).eval()
|
198
|
+
|
199
|
+
results = [[None for _ in range(2)] for _ in range(region_number)]
|
200
|
+
|
201
|
+
q = 0
|
202
|
+
|
203
|
+
for logit in softmax:
|
204
|
+
|
205
|
+
logit = [round(n * 100, 1) for n in logit]
|
206
|
+
|
207
|
+
logit = np.asarray(logit)
|
208
|
+
|
209
|
+
result = [["open", logit[0]], ["closed", logit[1]], ["partially_open", logit[2]], ["false_positive", logit[3]]]
|
210
|
+
|
211
|
+
result = sorted(result, key =lambda x: int(x[1]), reverse = True)
|
212
|
+
|
213
|
+
results[q][0] = result[0][0]
|
214
|
+
|
215
|
+
results[q][1] = result[0][1]
|
216
|
+
|
217
|
+
q += 1
|
218
|
+
|
219
|
+
#print ("\t",results)
|
220
|
+
|
221
|
+
return results
|
292
222
|
|
293
223
|
```
|
294
224
|
|
@@ -325,3 +255,5 @@
|
|
325
255
|
pandas 0.25.3
|
326
256
|
|
327
257
|
numpy 1.15.2
|
258
|
+
|
259
|
+
原因は恐らく[ここ](https://github.com/totti0223/deepstomata/blob/master/deepstomata/stomata_model.py)のコードとモデルの構造が一致していないことが原因と考えているのですが、学習モデルをこれにどう対応させていいのかが分からないです。
|
3
文言の修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ckptファイル復元(Tensor name "xxx" not found in checkpoint files)
|
1
|
+
ckptファイル復元(Tensor name "xxx" not found in checkpoint files)ができません
|
test
CHANGED
@@ -18,6 +18,10 @@
|
|
18
18
|
|
19
19
|
よろしくお願いします。
|
20
20
|
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
|
21
25
|
### 発生している問題・エラーメッセージ
|
22
26
|
|
23
27
|
|
2
タイトルの変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Tensor name "xxx" not found in checkpoint filesについて
|
1
|
+
ckptファイル復元(Tensor name "xxx" not found in checkpoint files)について
|
test
CHANGED
File without changes
|
1
質問に若干の変更を加えました
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,13 +6,15 @@
|
|
6
6
|
|
7
7
|
[https://github.com/totti0223/deepstomata](https://github.com/totti0223/deepstomata)
|
8
8
|
|
9
|
+
モデルが上手く復元できてないようです。
|
10
|
+
|
9
11
|
実行したモデルはVGG16を用いて学習させました。
|
10
12
|
|
11
13
|
原因は恐らく該当ソースコードとモデルの構造が一致していないことが原因と考えているのですが、
|
12
14
|
|
13
15
|
学習モデルをこれにどう対応させていいのかが分からないです。
|
14
16
|
|
15
|
-
ご助言などいただければ幸いです。
|
17
|
+
このエラー自体の解決方法などご助言などいただければ幸いです。
|
16
18
|
|
17
19
|
よろしくお願いします。
|
18
20
|
|