質問編集履歴

1

メモリの使用量を追記

2019/10/12 08:31

投稿

salmon_0511
salmon_0511

スコア16

test CHANGED
File without changes
test CHANGED
@@ -281,3 +281,137 @@
281
281
 
282
282
 
283
283
  を参考にkerasのメモリを制限しようと試みたものの、エラーは消えませんでした。
284
+
285
+
286
+
287
+ ###追記
288
+
289
+
290
+
291
+ メモリの使用量
292
+
293
+ ```
294
+
295
+ Line # Mem usage Increment Line Contents
296
+
297
+ ================================================
298
+
299
+ 51 332.6 MiB 332.6 MiB @app.route('/')
300
+
301
+ 52 @profile
302
+
303
+ 53 def upload_file():
304
+
305
+ 54 332.8 MiB 0.2 MiB return render_template('test.html')
306
+
307
+
308
+
309
+
310
+
311
+ 127.0.0.1 - - [12/Oct/2019 17:15:04] "GET / HTTP/1.1" 200 -
312
+
313
+ I1012 17:15:04.182286 123145472167936 _internal.py:122] 127.0.0.1 - - [12/Oct/2019 17:15:04] "GET / HTTP/1.1" 200 -
314
+
315
+ Filename: /Users/yuya/PycharmProjects/tongue/predict_web.py
316
+
317
+
318
+
319
+ Line # Mem usage Increment Line Contents
320
+
321
+ ================================================
322
+
323
+ 58 332.8 MiB 332.8 MiB @app.route('/predict',methods=['GET', 'POST'])
324
+
325
+ 59 @profile
326
+
327
+ 60 def predict_file():
328
+
329
+ 61 global graph
330
+
331
+ 62 332.8 MiB 0.0 MiB with graph.as_default():
332
+
333
+ 63 332.8 MiB 0.0 MiB if request.method == 'POST':
334
+
335
+ 64 332.8 MiB 0.0 MiB if 'file' not in request.files:
336
+
337
+ 65 flash('ファイルがありません')
338
+
339
+ 66 return redirect(request.url)
340
+
341
+ 67 332.8 MiB 0.0 MiB file = request.files['file'] #ここがよくワカンねぇな
342
+
343
+ 68 # if user does not selectfile, browser also
344
+
345
+ 69 #submit an empty part without filename
346
+
347
+ 70 332.8 MiB 0.0 MiB if file.filename == '':
348
+
349
+ 71 flash('ファイルがありません')
350
+
351
+ 72 return redirect(request.url)
352
+
353
+ 73 332.8 MiB 0.0 MiB if file and allowed_file(file.filename):
354
+
355
+ 74 332.8 MiB 0.0 MiB filename = secure_filename(file.filename)
356
+
357
+ 75 332.8 MiB 0.0 MiB file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
358
+
359
+ 76 332.8 MiB 0.0 MiB filepath = os.path.join(app.config['UPLOAD_FOLDER'], filename)
360
+
361
+ 77
362
+
363
+ 78 333.2 MiB 0.4 MiB image = Image.open(filepath)
364
+
365
+ 79 337.9 MiB 4.7 MiB image = image.convert('RGB')
366
+
367
+ 80 337.9 MiB 0.0 MiB image = image.resize((image_size, image_size))
368
+
369
+ 81 337.9 MiB 0.0 MiB data = np.asarray(image)
370
+
371
+ 82 337.9 MiB 0.0 MiB X = []
372
+
373
+ 83 337.9 MiB 0.0 MiB X.append(data)
374
+
375
+ 84 337.9 MiB 0.0 MiB X = np.array(X)
376
+
377
+ 85
378
+
379
+ 86 #model = load_model('./tongue_cnn_aug.h5')
380
+
381
+ 87
382
+
383
+ 88 341.7 MiB 3.8 MiB result = model.predict([X])[0]
384
+
385
+ 89 341.7 MiB 0.0 MiB predicted = result.argmax()
386
+
387
+ 90 341.7 MiB 0.0 MiB percentage = int(result[predicted] * 100)
388
+
389
+ 91 #K.clear_session()
390
+
391
+ 92 341.7 MiB 0.0 MiB result_title = ""
392
+
393
+ 93 341.7 MiB 0.0 MiB result_content=""
394
+
395
+ 94 341.7 MiB 0.0 MiB result_solution=""
396
+
397
+ 95
398
+
399
+ 96
400
+
401
+ 97 # return render_template('predict.html', result = classes[predicted], result_content = classes_content[predicted], result_solution = classes_solution[predicted], result_title="解析結果")
402
+
403
+ 98 341.8 MiB 0.1 MiB return render_template('predict.html', result = classes[predicted], result_content = classes_content[predicted], result_solution = classes_solution[predicted], result_title="解析結果",img_name=file.filename)
404
+
405
+ ```
406
+
407
+
408
+
409
+ 学習済みモデルがどれぐらいメモリを使用しているのかの確認方法が調べても分かりませんでしたので、memory_profilerを使って各行のメモリ使用量を確認してみました。
410
+
411
+
412
+
413
+ load_moduleした学習モデル「tongue_cnn_aug.h5」のメモリ使用料の確認方法も教えていただけたらと思います。
414
+
415
+
416
+
417
+ 訂正依頼でgpuについての言及がありましたが、gpuと当プログラムの関係はなかったものの、もしかしたらメモリが減るのでは?と思い試してみました。