2017-02-04 7 views
0

gcc이 설치된 Lubuntu 16.04 시스템을 실행 중입니다. 내가 doc2vec model을 훈련 할 때, 그것은 오직 한 번에 두려운 속도로 느린 훈련을 받기 때문에 gensimcython과 작동하지 않습니다.cython 및 gensim을 pyspark와 함께 사용하는 방법

내가 말한대로 gcc이 처음부터 설치되었습니다. 나는 실수를해서 gensimcython 앞에 설치했습니다. 나는 pip을 통해 gensim의 재설치를 강제함으로써 그것을 바로 잡았다. 여전히 영향을 미치지 않는 한 명.

기계는 spark 마스터로 설정되고 I 인터페이스는 spark을 통해 pyspark으로 설정됩니다. 이런 식으로 작동합니다. pysparkjupyter이고 jupyter은 python 3.5를 사용합니다. 이렇게하면 클러스터에 jupyter 인터페이스가 생깁니다. 지금 이것이 왜 내가 gensimcython과 함께 작동시키지 않는지 알 수 없습니다. 클러스터에서 gensim 코드를 실행하지 않으면 jupyter을 실행하여 gensim을 실행하는 것이 더 편리합니다.

+0

gensim 페이지에서 알 수있는 한 Cython과는 아무런 관련이 없습니다. 정확히 무엇을하고 있으며, Cython과 gensim이 함께 움직일 것이라고 생각하게 만드는 이유는 무엇입니까? – DavidW

+0

gensim에는 Cython으로 작성된 몇 가지 옵션 빠른 버전이 있지만 Cython을 직접 설치하지 않아도됩니다. 생성 된 C 파일은 GCC 만 필요하므로 제공됩니다. 또한 C 모듈을 작성할 수없는 경우 설치시 경고를 제공하고 C 모듈이없는 경우 가져 오기에 대한 경고를 표시합니다. 당신은 그 경고 중 하나를 얻습니까? – DavidW

+0

나는 word2vec 튜토리얼을 읽었습니다 : _Thoe workers 매개 변수는 Cython이 설치되어있을 때만 효과가 있습니다. Cython이 없으면 GIL (그리고 word2vec 교육은 비참하게 느려질 것입니다.) 때문에 하나의 코어 만 사용할 수 있습니다 ._ [여기] (https://rare-technologies.com/word2vec-tutorial/) 및 아니오 적어도 pip를 통해 빌드 오류를 얻지 마십시오. – Thagor

답변

0

다른 환경에서 gensim을 실행하는 메모리에 전체 코퍼스를로드하는 것과 같은 효과를 더 깊게 파고 들자. gensim에서 코드가 부분 병렬 처리 만하는 것이 문제인 것처럼 보입니다. 그 결과 작업자가 CPU를 완전히 활용할 수 없게됩니다. github link의 문제를 참조하십시오.

+0

내가 위에서 말했듯이 나는 1 시간 후에 만 ​​ – Thagor

0

아마도이 작업을 수행했을 것입니다. 그러나 병렬 Cythonised 버전을 assert gensim.models.doc2vec.FAST_VERSION > -1으로 사용하고 있는지 확인하십시오.

gensim doc2vec 코드는 병렬 처리되지만 불행히도 Gensim 외부에있는 I/O 코드는 병렬 처리되지 않습니다. 예를 들어, github issue에서 링크 병렬화는 실제로 corpus가 RAM에로드 된 후에 이루어집니다. doclist = [doc for doc in documents]

+0

할 수있다. 나는 이것 모두를 아무 쓸모없이했다. – Thagor