一、multiprocessing.pool.RemoteTraceback
生活随笔
收集整理的這篇文章主要介紹了
一、multiprocessing.pool.RemoteTraceback
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
遇到如下問題多半時數據有問題`。
// A code block
var foo = 'bar';
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):File "/home/unaguo/anaconda3/envs/pt1.3-py3.6/lib/python3.6/multiprocessing/pool.py", line 119, in workerresult = (True, func(*args, **kwds))File "/home/unaguo/anaconda3/envs/pt1.3-py3.6/lib/python3.6/site-packages/mxnet/gluon/data/dataloader.py", line 429, in _worker_fnbatch = batchify_fn([_worker_dataset[i] for i in samples])File "/home/unaguo/anaconda3/envs/pt1.3-py3.6/lib/python3.6/site-packages/mxnet/gluon/data/dataloader.py", line 429, in <listcomp>batch = batchify_fn([_worker_dataset[i] for i in samples])File "/data2/enducation/paper_recog_total/train-paper-recog/line_detect/data/paper_dataset.py", line 375, in __getitem__data_dict = self._transforms(data_dict)File "/data2/enducation/paper_recog_total/train-paper-recog/line_detect/data/transforms_paper.py", line 13, in __call__args = trans(args)File "/data2/enducation/paper_recog_total/train-paper-recog/line_detect/data/transforms_paper.py", line 468, in __call__dst_points = np.array([[rdw(), rdh()], [w-1-rdw(), rdh()], [w-1-rdw(), h-1-rdh()], [rdw(), h-1-rdh()]])File "/data2/enducation/paper_recog_total/train-paper-recog/line_detect/data/transforms_paper.py", line 466, in <lambda>rdh = lambda: np.random.randint(0, self.max_affine_xy_ratio * h)File "mtrand.pyx", line 746, in numpy.random.mtrand.RandomState.randintFile "_bounded_integers.pyx", line 1254, in numpy.random._bounded_integers._rand_int64
ValueError: low >= high
"""The above exception was the direct cause of the following exception:Traceback (most recent call last):File "/data2/enducation/paper_recog_total/train-paper-recog/line_detect/scripts/train_gluon_testpaper.py", line 233, in <module>for batch_cnt, data_batch in enumerate(tqdm.tqdm(train_loader)):File "/home/unaguo/anaconda3/envs/pt1.3-py3.6/lib/python3.6/site-packages/tqdm/std.py", line 1178, in __iter__for obj in iterable:File "/home/unaguo/anaconda3/envs/pt1.3-py3.6/lib/python3.6/site-packages/mxnet/gluon/data/dataloader.py", line 484, in __next__batch = pickle.loads(ret.get(self._timeout))File "/home/unaguo/anaconda3/envs/pt1.3-py3.6/lib/python3.6/multiprocessing/pool.py", line 644, in getraise self._value
ValueError: low >= high
解決思路:
將mx.gluon.data.DataLoader中修改thread_pool=True,什么意思呢?
If True, use threading pool instead of multiprocessing pool. Using threadpool can avoid shared memory usage. If DataLoader is more IO bounded or GIL is not a killing problem, threadpool version may achieve better performance than multiprocessing.
翻譯:如果True,則使用線程池而不是多處理池。使用線程池可以避免共享內存的使用。如果“DataLoader”的IO范圍更大,或者GIL不是致命的問題是,線程池版本可能實現比多處理更好的性能。
train_loader = mx.gluon.data.DataLoader(train_dataset, batch_size=config.TRAIN.batch_size,shuffle=True, num_workers=2, thread_pool=True,last_batch="discard", batchify_fn=batch_fn)
總結
以上是生活随笔為你收集整理的一、multiprocessing.pool.RemoteTraceback的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三、python中最基础的文件处理汇总
- 下一篇: 二、深度学习数据增强方法汇总