python 多进程multiprocessing进程池pool tensorflow-yolov3 报错 MemoryError
生活随笔
收集整理的這篇文章主要介紹了
python 多进程multiprocessing进程池pool tensorflow-yolov3 报错 MemoryError
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
進程數設置為1-9個都能正常運行,設置成10個就開始報錯,怪事!
D:\20191031_tensorflow_yolov3\python\python.exe D:/20191031_tensorflow_yolov3/tensorflow-yolov3/test-191204-單個攝像頭調用multiprocessing線程池pool識別_while循環外.py 2019-12-05 15:22:20.902614: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 2019-12-05 15:22:21.689119: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1411] Found device 0 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.6575 pciBusID: 0000:0e:00.0 totalMemory: 11.00GiB freeMemory: 9.10GiB 2019-12-05 15:22:21.800110: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1411] Found device 1 with properties: name: GeForce GT 710 major: 3 minor: 5 memoryClockRate(GHz): 0.954 pciBusID: 0000:05:00.0 totalMemory: 2.00GiB freeMemory: 1.67GiB 2019-12-05 15:22:21.800711: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1461] Ignoring visible gpu device (device: 1, name: GeForce GT 710, pci bus id: 0000:05:00.0, compute capability: 3.5) with Cuda compute capability 3.5. The minimum required Cuda capability is 3.7. 2019-12-05 15:22:21.801260: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1490] Adding visible gpu devices: 0 2019-12-05 15:22:23.154033: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] Device interconnect StreamExecutor with strength 1 edge matrix: 2019-12-05 15:22:23.154337: I tensorflow/core/common_runtime/gpu/gpu_device.cc:977] 0 1 2019-12-05 15:22:23.154524: I tensorflow/core/common_runtime/gpu/gpu_device.cc:990] 0: N N 2019-12-05 15:22:23.154709: I tensorflow/core/common_runtime/gpu/gpu_device.cc:990] 1: N N 2019-12-05 15:22:23.155060: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1103] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 8789 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:0e:00.0, compute capability: 6.1) Traceback (most recent call last):File "<string>", line 1, in <module>File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 105, in spawn_mainexitcode = _main(fd)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 114, in _mainprepare(preparation_data)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 225, in prepare_fixup_main_from_path(data['init_main_from_path'])File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 277, in _fixup_main_from_pathrun_name="__mp_main__")File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 263, in run_pathpkg_name=pkg_name, script_name=fname)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 96, in _run_module_codemod_name, mod_spec, pkg_name, script_name)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 85, in _run_codeexec(code, run_globals)File "D:\20191031_tensorflow_yolov3\tensorflow-yolov3\test-191204-單個攝像頭調用multiprocessing線程池pool識別_while循環外.py", line 20, in <module>import tensorflow as tfFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\__init__.py", line 22, in <module>from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-importFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\__init__.py", line 83, in <module>from tensorflow.python.layers import layersFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\layers\layers.py", line 39, in <module>from tensorflow.python.layers.convolutional import SeparableConv1DFile "<frozen importlib._bootstrap>", line 971, in _find_and_loadFile "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlockedFile "<frozen importlib._bootstrap>", line 665, in _load_unlockedFile "<frozen importlib._bootstrap_external>", line 674, in exec_moduleFile "<frozen importlib._bootstrap_external>", line 764, in get_codeFile "<frozen importlib._bootstrap_external>", line 833, in get_data MemoryError Traceback (most recent call last):File "<string>", line 1, in <module>File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 105, in spawn_mainexitcode = _main(fd)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 114, in _mainprepare(preparation_data)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 225, in prepare_fixup_main_from_path(data['init_main_from_path'])File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 277, in _fixup_main_from_pathrun_name="__mp_main__")File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 263, in run_pathpkg_name=pkg_name, script_name=fname)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 96, in _run_module_codemod_name, mod_spec, pkg_name, script_name)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 85, in _run_codeexec(code, run_globals)File "D:\20191031_tensorflow_yolov3\tensorflow-yolov3\test-191204-單個攝像頭調用multiprocessing線程池pool識別_while循環外.py", line 20, in <module>import tensorflow as tfFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\__init__.py", line 22, in <module>from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-importFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\__init__.py", line 83, in <module>from tensorflow.python.layers import layersFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\layers\layers.py", line 39, in <module>from tensorflow.python.layers.convolutional import SeparableConv1DFile "<frozen importlib._bootstrap>", line 971, in _find_and_load Traceback (most recent call last):File "<string>", line 1, in <module> Traceback (most recent call last):File "<string>", line 1, in <module>File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlockedFile "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 105, in spawn_mainexitcode = _main(fd)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 114, in _mainFile "<frozen importlib._bootstrap>", line 665, in _load_unlockedprepare(preparation_data)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 225, in prepareFile "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 105, in spawn_main_fixup_main_from_path(data['init_main_from_path'])File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 277, in _fixup_main_from_pathFile "<frozen importlib._bootstrap_external>", line 674, in exec_module Traceback (most recent call last):File "<string>", line 1, in <module>run_name="__mp_main__")File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 263, in run_pathexitcode = _main(fd)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 114, in _mainFile "<frozen importlib._bootstrap_external>", line 764, in get_codepkg_name=pkg_name, script_name=fname)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 96, in _run_module_codeFile "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 105, in spawn_mainmod_name, mod_spec, pkg_name, script_name)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 85, in _run_codeexitcode = _main(fd)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 114, in _mainFile "<frozen importlib._bootstrap_external>", line 833, in get_dataexec(code, run_globals)File "D:\20191031_tensorflow_yolov3\tensorflow-yolov3\test-191204-單個攝像頭調用multiprocessing線程池pool識別_while循環外.py", line 20, in <module>prepare(preparation_data)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 225, in prepareprepare(preparation_data)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 225, in prepareimport tensorflow as tfFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\__init__.py", line 22, in <module>_fixup_main_from_path(data['init_main_from_path'])File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 277, in _fixup_main_from_path MemoryErrorfrom tensorflow.python import pywrap_tensorflow # pylint: disable=unused-importFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\__init__.py", line 83, in <module>from tensorflow.python.layers import layersFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\layers\layers.py", line 39, in <module>run_name="__mp_main__")File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 263, in run_pathfrom tensorflow.python.layers.convolutional import SeparableConv1D_fixup_main_from_path(data['init_main_from_path'])File "<frozen importlib._bootstrap>", line 971, in _find_and_loadFile "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 277, in _fixup_main_from_pathpkg_name=pkg_name, script_name=fname)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 96, in _run_module_codemod_name, mod_spec, pkg_name, script_name)File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlockedFile "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 85, in _run_codeexec(code, run_globals)File "D:\20191031_tensorflow_yolov3\tensorflow-yolov3\test-191204-單個攝像頭調用multiprocessing線程池pool識別_while循環外.py", line 20, in <module>run_name="__mp_main__")File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 263, in run_pathFile "<frozen importlib._bootstrap>", line 665, in _load_unlockedimport tensorflow as tfFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\__init__.py", line 22, in <module>from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-importFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\__init__.py", line 82, in <module>pkg_name=pkg_name, script_name=fname)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 96, in _run_module_codefrom tensorflow.python.feature_column import feature_column_lib as feature_columnFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\feature_column\feature_column_lib.py", line 22, in <module>File "<frozen importlib._bootstrap_external>", line 674, in exec_modulemod_name, mod_spec, pkg_name, script_name)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 85, in _run_codefrom tensorflow.python.feature_column.feature_column import *File "<frozen importlib._bootstrap>", line 971, in _find_and_loadexec(code, run_globals)File "D:\20191031_tensorflow_yolov3\tensorflow-yolov3\test-191204-單個攝像頭調用multiprocessing線程池pool識別_while循環外.py", line 20, in <module>File "<frozen importlib._bootstrap_external>", line 764, in get_codeimport tensorflow as tfFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\__init__.py", line 22, in <module>File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlockedfrom tensorflow.python import pywrap_tensorflow # pylint: disable=unused-importFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\__init__.py", line 83, in <module>File "<frozen importlib._bootstrap_external>", line 833, in get_datafrom tensorflow.python.layers import layersFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\layers\layers.py", line 39, in <module>File "<frozen importlib._bootstrap>", line 665, in _load_unlocked MemoryErrorfrom tensorflow.python.layers.convolutional import SeparableConv1DFile "<frozen importlib._bootstrap>", line 971, in _find_and_loadFile "<frozen importlib._bootstrap_external>", line 674, in exec_moduleFile "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlockedFile "<frozen importlib._bootstrap_external>", line 764, in get_codeFile "<frozen importlib._bootstrap>", line 665, in _load_unlockedFile "<frozen importlib._bootstrap_external>", line 833, in get_data MemoryErrorFile "<frozen importlib._bootstrap_external>", line 674, in exec_moduleFile "<frozen importlib._bootstrap_external>", line 764, in get_codeFile "<frozen importlib._bootstrap_external>", line 833, in get_data Traceback (most recent call last):File "<string>", line 1, in <module> MemoryErrorFile "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 105, in spawn_mainexitcode = _main(fd)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 114, in _mainprepare(preparation_data)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 225, in prepare_fixup_main_from_path(data['init_main_from_path'])File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 277, in _fixup_main_from_pathrun_name="__mp_main__")File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 263, in run_pathpkg_name=pkg_name, script_name=fname)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 96, in _run_module_codemod_name, mod_spec, pkg_name, script_name)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 85, in _run_codeexec(code, run_globals)File "D:\20191031_tensorflow_yolov3\tensorflow-yolov3\test-191204-單個攝像頭調用multiprocessing線程池pool識別_while循環外.py", line 20, in <module>import tensorflow as tfFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\__init__.py", line 22, in <module>from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-importFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\__init__.py", line 87, in <module>from tensorflow.python.ops import metricsFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\ops\metrics.py", line 23, in <module>from tensorflow.python.ops.metrics_impl import *File "<frozen importlib._bootstrap>", line 971, in _find_and_loadFile "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlockedFile "<frozen importlib._bootstrap>", line 665, in _load_unlockedFile "<frozen importlib._bootstrap_external>", line 674, in exec_moduleFile "<frozen importlib._bootstrap_external>", line 764, in get_codeFile "<frozen importlib._bootstrap_external>", line 833, in get_data MemoryError Traceback (most recent call last):File "<string>", line 1, in <module>File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 105, in spawn_mainexitcode = _main(fd)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 114, in _mainprepare(preparation_data)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 225, in prepare_fixup_main_from_path(data['init_main_from_path'])File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 277, in _fixup_main_from_pathrun_name="__mp_main__")File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 263, in run_pathpkg_name=pkg_name, script_name=fname)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 96, in _run_module_codemod_name, mod_spec, pkg_name, script_name)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 85, in _run_codeexec(code, run_globals)File "D:\20191031_tensorflow_yolov3\tensorflow-yolov3\test-191204-單個攝像頭調用multiprocessing線程池pool識別_while循環外.py", line 20, in <module>import tensorflow as tfFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\__init__.py", line 22, in <module>from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-importFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\__init__.py", line 83, in <module>from tensorflow.python.layers import layersFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\layers\layers.py", line 39, in <module>from tensorflow.python.layers.convolutional import SeparableConv1DFile "<frozen importlib._bootstrap>", line 971, in _find_and_loadFile "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlockedFile "<frozen importlib._bootstrap>", line 665, in _load_unlockedFile "<frozen importlib._bootstrap_external>", line 674, in exec_moduleFile "<frozen importlib._bootstrap_external>", line 764, in get_codeFile "<frozen importlib._bootstrap_external>", line 833, in get_data MemoryError Traceback (most recent call last):File "<string>", line 1, in <module>File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 105, in spawn_mainexitcode = _main(fd)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 114, in _mainprepare(preparation_data)File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 225, in prepare_fixup_main_from_path(data['init_main_from_path'])File "D:\20191031_tensorflow_yolov3\python\lib\multiprocessing\spawn.py", line 277, in _fixup_main_from_pathrun_name="__mp_main__")File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 263, in run_pathpkg_name=pkg_name, script_name=fname)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 96, in _run_module_codemod_name, mod_spec, pkg_name, script_name)File "D:\20191031_tensorflow_yolov3\python\lib\runpy.py", line 85, in _run_codeexec(code, run_globals)File "D:\20191031_tensorflow_yolov3\tensorflow-yolov3\test-191204-單個攝像頭調用multiprocessing線程池pool識別_while循環外.py", line 20, in <module>import tensorflow as tfFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\__init__.py", line 22, in <module>from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-importFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\__init__.py", line 83, in <module>from tensorflow.python.layers import layersFile "D:\20191031_tensorflow_yolov3\python\lib\site-packages\tensorflow\python\layers\layers.py", line 39, in <module>from tensorflow.python.layers.convolutional import SeparableConv1DFile "<frozen importlib._bootstrap>", line 971, in _find_and_loadFile "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlockedFile "<frozen importlib._bootstrap>", line 665, in _load_unlockedFile "<frozen importlib._bootstrap_external>", line 674, in exec_moduleFile "<frozen importlib._bootstrap_external>", line 764, in get_codeFile "<frozen importlib._bootstrap_external>", line 833, in get_data MemoryErrorProcess finished with exit code -1073740791 (0xC0000409)示例代碼:
# -*- coding: utf-8 -*- """ @File : test-191204-單個攝像頭調用multiprocessing線程池pool識別_while循環外.py @Time : 2019/12/5 11:14 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ # -*- coding: utf-8 -*- """ @File : test-191204-兩個攝像頭調用multiprocessing線程池pool識別.py @Time : 2019/12/4 15:03 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """import cv2 import numpy as np import tensorflow as tf import core.utils as utils from core.config import cfg from core.yolov3 import YOLOV3 import pyrealsense2 as rs from multiprocessing import Poolclass YoloTest(object):def __init__(self):# D·C 191111:__C.TEST.INPUT_SIZE = 544self.input_size = cfg.TEST.INPUT_SIZEself.anchor_per_scale = cfg.YOLO.ANCHOR_PER_SCALE# Dontla 191106注釋:初始化class.names文件的字典信息屬性self.classes = utils.read_class_names(cfg.YOLO.CLASSES)# D·C 191115:類數量屬性self.num_classes = len(self.classes)self.anchors = np.array(utils.get_anchors(cfg.YOLO.ANCHORS))# D·C 191111:__C.TEST.SCORE_THRESHOLD = 0.3self.score_threshold = cfg.TEST.SCORE_THRESHOLD# D·C 191120:__C.TEST.IOU_THRESHOLD = 0.45self.iou_threshold = cfg.TEST.IOU_THRESHOLDself.moving_ave_decay = cfg.YOLO.MOVING_AVE_DECAY# D·C 191120:__C.TEST.ANNOT_PATH = "./data/dataset/Dontla/20191023_Artificial_Flower/test.txt"self.annotation_path = cfg.TEST.ANNOT_PATH# D·C 191120:__C.TEST.WEIGHT_FILE = "./checkpoint/f_g_c_weights_files/yolov3_test_loss=15.8845.ckpt-47"self.weight_file = cfg.TEST.WEIGHT_FILE# D·C 191115:可寫標記(bool類型值)self.write_image = cfg.TEST.WRITE_IMAGE# D·C 191115:__C.TEST.WRITE_IMAGE_PATH = "./data/detection/"(識別圖片畫框并標注文本后寫入的圖片路徑)self.write_image_path = cfg.TEST.WRITE_IMAGE_PATH# D·C 191116:TEST.SHOW_LABEL設置為Trueself.show_label = cfg.TEST.SHOW_LABEL# D·C 191120:創建命名空間“input”with tf.name_scope('input'):# D·C 191120:建立變量(創建占位符開辟內存空間)self.input_data = tf.placeholder(dtype=tf.float32, name='input_data')self.trainable = tf.placeholder(dtype=tf.bool, name='trainable')model = YOLOV3(self.input_data, self.trainable)self.pred_sbbox, self.pred_mbbox, self.pred_lbbox = model.pred_sbbox, model.pred_mbbox, model.pred_lbbox# D·C 191120:創建命名空間“指數滑動平均”with tf.name_scope('ema'):ema_obj = tf.train.ExponentialMovingAverage(self.moving_ave_decay)# D·C 191120:在允許軟設備放置的會話中啟動圖形并記錄放置決策。(不懂啥意思。。。)allow_soft_placement=True表示允許tf自動選擇可用的GPU和CPUself.sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True))# D·C 191120:variables_to_restore()用于加載模型計算滑動平均值時將影子變量直接映射到變量本身self.saver = tf.train.Saver(ema_obj.variables_to_restore())# D·C 191120:用于下次訓練時恢復模型self.saver.restore(self.sess, self.weight_file)def predict(self, image):# D·C 191107:復制一份圖片的鏡像,避免對圖片直接操作改變圖片的內在屬性org_image = np.copy(image)# D·C 191107:獲取圖片尺寸org_h, org_w, _ = org_image.shape# D·C 191108:該函數將源圖結合input_size,將其轉換成預投喂的方形圖像(作者默認544×544,中間為縮小尺寸的源圖,上下空區域為灰圖):image_data = utils.image_preprocess(image, [self.input_size, self.input_size])# D·C 191108:打印維度看看:# print(image_data.shape)# (544, 544, 3)# D·C 191108:創建新軸,不懂要創建新軸干嘛?image_data = image_data[np.newaxis, ...]# D·C 191108:打印維度看看:# print(image_data.shape)# (1, 544, 544, 3)# D·C 191110:三個box可能存放了預測框圖(可能是N多的框,有用的沒用的重疊的都在里面)的信息(但是打印出來的值完全看不懂啊喂?)pred_sbbox, pred_mbbox, pred_lbbox = self.sess.run([self.pred_sbbox, self.pred_mbbox, self.pred_lbbox],feed_dict={self.input_data: image_data,self.trainable: False})# D·C 191110:打印三個box的類型、形狀和值看看:# print(type(pred_sbbox))# print(type(pred_mbbox))# print(type(pred_lbbox))# 都是<class 'numpy.ndarray'># print(pred_sbbox.shape)# print(pred_mbbox.shape)# print(pred_lbbox.shape)# (1, 68, 68, 3, 6)# (1, 34, 34, 3, 6)# (1, 17, 17, 3, 6)# print(pred_sbbox)# print(pred_mbbox)# print(pred_lbbox)# D·C 191110:(-1,6)表示不知道有多少行,反正你給我整成6列,然后concatenate又把它們仨給疊起來,最終得到無數個6列數組(后面self.num_classes)個數存放的貌似是這個框屬于類的概率)pred_bbox = np.concatenate([np.reshape(pred_sbbox, (-1, 5 + self.num_classes)),np.reshape(pred_mbbox, (-1, 5 + self.num_classes)),np.reshape(pred_lbbox, (-1, 5 + self.num_classes))], axis=0)# D·C 191111:打印pred_bbox和它的維度看看:# print(pred_bbox)# print(pred_bbox.shape)# (18207, 6)# D·C 191111:猜測是第一道過濾,過濾掉score_threshold以下的圖片,過濾完之后少了好多:# D·C 191115:bboxes維度為[n,6],前四列是坐標,第五列是得分,第六列是對應類下標bboxes = utils.postprocess_boxes(pred_bbox, (org_h, org_w), self.input_size, self.score_threshold)# D·C 191111:猜測是第二道過濾,過濾掉iou_threshold以下的圖片:bboxes = utils.nms(bboxes, self.iou_threshold)return bboxesdef dontla_evaluate_detect(self):pipeline1 = rs.pipeline()config1 = rs.config()ctx = rs.context()# 通過程序去獲取已連接攝像頭序列號serial1 = ctx.devices[0].get_info(rs.camera_info.serial_number)config1.enable_device(serial1)config1.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)config1.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)pipeline1.start(config1)# 創建對齊對象(深度對齊顏色)align1 = rs.align(rs.stream.color)def detect_run():while True:frames1 = pipeline1.wait_for_frames()# 獲取對齊幀集aligned_frames1 = align1.process(frames1)# 獲取對齊后的深度幀和彩色幀aligned_depth_frame1 = aligned_frames1.get_depth_frame()color_frame1 = aligned_frames1.get_color_frame()# 獲取顏色幀內參color_profile1 = color_frame1.get_profile()cvsprofile1 = rs.video_stream_profile(color_profile1)color_intrin1 = cvsprofile1.get_intrinsics()color_intrin_part1 = [color_intrin1.ppx, color_intrin1.ppy, color_intrin1.fx, color_intrin1.fy]# if not aligned_depth_frame1 or not color_frame1:# continue# if not aligned_depth_frame2 or not color_frame2:# continuecolor_image1 = np.asanyarray(color_frame1.get_data())# D·C 191121:顯示幀看看# cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)# cv2.imshow('RealSense', color_frame)# cv2.waitKey(1)bboxes_pr1 = self.predict(color_image1)# bboxes_pr2 = self.predict(color_image2)# for i in range(2):# result.append(pool.apply_async(self.predict, args=(locals()['color_image' + str(i + 1)],)))# for i in result:# locals()['bboxes_pr' + str(result.index(i) + 1)] = i.get()image1 = utils.draw_bbox(color_image1, bboxes_pr1, aligned_depth_frame1, color_intrin_part1,show_label=self.show_label)# cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)cv2.imshow('window1', image1)cv2.waitKey(1)try:pool = Pool(processes=8)pool.apply_async(detect_run())pool.close()pool.join()finally:pipeline1.stop()if __name__ == '__main__':YoloTest().dontla_evaluate_detect()參考解決方法1:python multiprocessing多進程出現MemoryError的問題與解決方法
參考解決方法2:python如何讓multiprocessing拋出錯誤信息
總結
以上是生活随笔為你收集整理的python 多进程multiprocessing进程池pool tensorflow-yolov3 报错 MemoryError的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 多进程multiproce
- 下一篇: Tensorflow yolov3 In