나는 풀에서 비동기 적으로 파일을 NumPy와로드하려고 :파이썬 멀티 apply_async는 "왼쪽 주장> 0"AssertionError를
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, (...))
방법 "loadPackages"
def loadPackages(... (2 strings & 2 ints) ...):
print("This isn't printed!')
packages = {
"TRUE": np.load(gzip.GzipFile(path1, "r")),
"FALSE": np.load(gzip.GzipFile(path2, "r"))
}
return packages
전에라도 최초의 " 패키지 "가로드되면 다음 오류가 발생합니다.
스레드의 예외 스레드 8 : 추적 (가장 최근 호출 마지막) :
파일 "C : \ Users \ roman \ Anaconda3 \ envs \ tsc1 \ lib \ threading.py", 줄 914, in _bootstrap_inner self.run() 파일 "C : \ Users \ roman \ Anaconda3 \ envs \ tsc1 \ user \ roman \ Anaconda3 \ envs \ tsc1 \ lib \ multiprocessing \ pool 파일의 내용은 다음과 같습니다. .py ", line 463, _handle_results task = get() 파일"C : \ Users \ roman \ Anaconda3 \ envs \ tsc1 \ lib \ multiprocessing \ connection.py "파일, 라인 250, recv buf = self .recv_bytes() 파일 "C : \ Users \ roman \ Anaconda3 \ envs \ tsc1 \ lib \ multiprocessing \ connection.py" 줄 318, _recv_bytes에 반환 self._get_more_data (ov, maxsize) 파일 "C : \ Users \ roman \ Anaconda3 \ envs \ ts C1 \ lib 디렉토리 \ 왼쪽 _get_more_data 어설에서 \ connection.py " 라인 (337)을, 멀티 프로세싱> 0 AssertionError를
나는 밀접하게 리소스를 모니터링 : 메모리가 문제가되지 않는 오류가 발생했을 때 난 여전히 많은 왼쪽이 . 압축 해제 된 파일은 단순한 다차원 numpy 배열입니다. 개별적으로, 더 간단한 방법으로 풀을 사용하고 작동하는 것처럼 파일을로드합니다. 조합으로 만 실패합니다. (이 모든 것은 커스텀 생성기에서 발생합니다.이 기능이 도움이 될지는 모르지만 누가 알 수 있습니다.) Python 3.5.
이 문제의 원인은 무엇입니까? 이 오류를 어떻게 해석 할 수 있습니까?
도움 주셔서 감사합니다.
왼쪽에는 많은 RAM이 있어도 같은 문제가 있습니다. 문제의 해결책을 찾았습니까? –