2016-07-15 1 views
0

모듈을 가져올 때 내 우분투 중 하나에서 매우 이상합니다. 팬더 한 개에 대해 임의의 시간 (0.9에서 160 초)이 소요됩니다. Import pandas in 161s가져 오기 모듈에서 파이썬으로 작성되는 내용을 아는 방법은 무엇입니까?

무엇이 문제의 원인인지 모르겠지만, 모듈 로딩 중에 python이 IOW/s = 2M이있는 디스크에 무엇인가를 쓰는 것을 발견했습니다.

그래서 제 질문은 : 파이썬이 실행시에 쓰기 파일을 추적 할 수있는 방법은

있습니까?

파이썬 2.7, CUDA는 8.0 RC, cuDnn 5.1, Theano 9.0-DEV, keras, 팬더 0.18.1


내가 파이썬은 /home/username/.nv/에 쓰기 발견 추적 후 ComputeCache, 그래서 아마도 하나의 GPU 관련 libs이 문제가 발생합니다. 그러나 팬더 만 영향을받는 이유는 모르겠습니다.


감사합니다. 해결 방법을 찾았습니다. 먼저 팬더를 가져옵니다.

+1

아마도 여기에 가져 오기를 보여주는 코드를 넣을 수 있습니까? 갑자기 "모델 로딩"과 "Theano"와 "Keras"가 끝나기 때문에 문제는 특정 코드에 더 구체적 일 수 있으며 질문 제목에서 일반적인 "가져 오기 모듈 중"이 아닙니다. – justhalf

+0

@justhalf 그 점을 지적 해 주셔서 감사합니다. "수입"테스트를위한 작은 스크립트가 있고 문제를 재현 할 수 없습니다. 그러나이 프로그램은 프로그램을 실행할 때 항상 쓰여지고있는 내용을 알고 싶을 때이 문제가 항상 나타납니다 (재부팅 후 테스트하지 않음). –

+1

나는 본다. 그렇다면 실제로 쓰여지고있는 내용을 확인하고 나중에 참조 할 때 유용하다고 생각하면로드하는 임의의 시간이 아닌 해당 부분에 초점을 맞추어 질문을 다시 말해야합니다. 또한 본문의 질문은 "실행 중에 파이썬이 쓰고있는 파일을 추적하는 방법이 있습니까?"와 같이 업데이트 될 수 있습니다. 좀 더 일반적인 것으로. (현재 당신은 "모델 로딩 중"을 질문과 관련이 없습니다.) – justhalf

답변

1

strace을 사용하면 시스템 호출을 추적 할 수 있습니다.

$ strace -ttt -feopen,write -o log python -c 'open("foo", "w").write("blah")' 
$ cat log 
... 
122157 1468546777.800508 open("foo", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3 
122157 1468546777.800733 write(3, "blah", 4) = 4 
122157 1468546777.804145 +++ exited with 0 +++ 

이렇게하면 열리고 쓰여지는 파일과 각 이벤트의 시간이 표시됩니다.

+0

감사합니다. 추적 후, 파이썬이 /home/username/.nv/ComputeCache에 쓰기 때문에, GPU 관련 라이브러리 중 하나가이 문제를 일으킬 수 있습니다. –

+2

GPU 라이브러리를 가져 오기 전에'os.environ [ 'CUDA_CACHE_DISABLE'] = '1''을 사용하면이를 막을 수 있습니다. 자세한 내용은 다음을 참조하십시오 : http://docs.nvidia.com/cuda/cuda-c-programming- guide/index.html # env-vars – rmmh

관련 문제