<p>我正在尝试在池中异步加载numy文件:</p>
<pre><code>self.pool = Pool(2, maxtasksperchild = 1)
...
nextPackage = self.pool.apply_async(loadPackages, (...))
for fi in np.arange(len(files)):
packages = nextPackage.get(timeout=30)
# preload the next package asynchronously. It will be available
# by the time it is required.
nextPackage = self.pool.apply_async(loadPackages, (...))
</code></pre>
<p>方法“loadPackages”:</p>
^{pr2}$
<p>在加载第一个“包”之前,会发生以下错误:</p>
<blockquote>
<p>Exception in thread Thread-8: Traceback (most recent call last):<br/>
File "C:\Users\roman\Anaconda3\envs\tsc1\lib\threading.py", line 914,
in _bootstrap_inner
self.run() File "C:\Users\roman\Anaconda3\envs\tsc1\lib\threading.py", line 862, in
run
self._target(*self._args, **self._kwargs) File "C:\Users\roman\Anaconda3\envs\tsc1\lib\multiprocessing\pool.py", line
463, in _handle_results
task = get() File "C:\Users\roman\Anaconda3\envs\tsc1\lib\multiprocessing\connection.py",
line 250, in recv
buf = self._recv_bytes() File "C:\Users\roman\Anaconda3\envs\tsc1\lib\multiprocessing\connection.py",
line 318, in _recv_bytes
return self._get_more_data(ov, maxsize) File "C:\Users\roman\Anaconda3\envs\tsc1\lib\multiprocessing\connection.py",
line 337, in _get_more_data
assert left > 0 AssertionError</p>
</blockquote>
<p>我密切监视资源:内存不是问题,出错时我还有足够的内存。
解压缩的文件只是普通的多维numpy数组。
单独使用一个池和一个更简单的方法是可行的,并且像这样加载文件。只有结合起来它才会失败。
(所有这些都发生在定制的keras生成器中。我怀疑这是否有用,但谁知道呢。)python3.5。在</p>
<p>这个问题的原因是什么?如何解释这个错误?在</p>
<p>谢谢你的帮助!在</p>