2016-08-18 3 views
0

나는 Theano와 Deep Learning에서 새로운데, 나는 Theano에서 실험을하고 있지만, GPU를 사용하여 직접 데이터 확대를 수행하여 시간을 절약하고 싶습니다.Theano에서 GPU를 사용한 데이터 확대

불행히도 나는 PyCuda를 사용할 수 없으므로 Theano를 사용하여 기본 데이터 확대를 수행 할 수 있는지 알고 싶습니다. 예를 들어 이미지의 번역이나 회전은 Numpy를 사용하는 CPU에서 scipy 기능을 사용하고 있지만 꽤 느립니다.

+0

[this repo] (https://github.com/benanne/kaggle-ndsb)를 살펴 보겠습니다. [Lasagne] (https://github.com/Lasagne/Lasagne) 프로젝트를 만든 Kaggle 경쟁사의 코드입니다. 그의 솔루션에서 그는 자신의 CPU를 사용하여 모든 데이터 확대 작업을 수행하고 각 증강 된 배치를 대기열에 넣은 반면 GPU는 대기열과 열차에서 배치를 수집합니다. – gobrewers14

답변

0

데이터 증가가 계산 그래프의 일부이고 GPU에서 실행될 수 있으면 GPU에서 자연스럽게 실행됩니다. 따라서 "GPU에서 Theano tensor 연산을 사용하여 일반적인 데이터 증가 작업을 수행 할 수 있습니까?"라는 질문이 좁혀졌습니다.

적용하려는 변형이 번역 일 경우 theano.tensor.roll을 사용하고 일부 마스킹을 사용할 수 있습니다. 회전을 원한다면 this implementation of spatial transformer network을 살펴보십시오. 특히 _transform 함수를 살펴보면, 샘플 및 실제 샘플 당 2x3 변환 (왼쪽 2x2가 회전이고 오른쪽 1x2가 변환)을 갖는 행렬 theta를 입력으로 사용하고 회전 및 평행 이동을 그 샘플들. GPU가 수행하는 작업이 GPU에 최적화되어 있는지 확인하지 못했습니다 (즉, 해당 기능의 병목 현상이 CPU에서 실행되어 사용 사례에 적합하지 않을 수 있음).하지만 좋은 출발점입니다.