딥 학습과 그 프레임 워크에서 비교적 새로운입니다. 현재 Caffe 프레임 워크를 실험 중이며 Vgg16_places_365를 미세 조정하려고합니다.Finetuning Caffe Deep Learning Check 실패 : 오류 == cuda 메모리 부족
4 개의 GPU가있는 Amazone EC2 인스턴스 g2.8xlarge를 사용하고 있습니다 (각각 4GB의 RAM이 있음). 나는 몇 가지 조사를 한 후,이 방법 중 하나가 문제입니다 메모리 부족이 문제를 해결하는 것을 발견
Check failed: error == cudaSuccess (2 vs. 0) out of memory
: 나는 (단일 GPU를 사용) 내 모델을 학습 할 때 그러나,이 오류가 발생했습니다 내 train.prototxt에서 배치 크기를 줄이십시오.
Caffe | Check failed: error == cudaSuccess (2 vs. 0) out of memory.
처음에는 배치 크기를 50으로 설정하고 반복적으로 10으로 줄였습니다 (batch_size = 10 일 때부터 작동했기 때문에). 이제 모델이 훈련되고 꽤 오랜 시간이 걸릴 것이라고 확신합니다. 그러나이 도메인의 초보자로서,이 배치 크기와 학습 속도, 단계 크기 및 심지어 solver.prototxt에서 지정하는 최대 반복과 같은 다른 매개 변수 간의 관계에 대해 궁금합니다.
배치의 크기가 모델 정확도에 영향을 미칩니다 (예 : 정확도와 같음). 다른 매개 변수를 사용하여 품질을 활용하는 방법. 또한 배치 크기를 줄이거 나 컴퓨터를 확장하는 대신이 문제를 해결할 다른 방법이 있습니까?
멋진 답변과 감사를 표합니다. 그래서, 내가 올바르게 이해할 수 있다면, 일반적으로 배치 크기는 체중 업데이트를하기 전에 얼마나 많은 예제를 보는지 결정합니다. 즉, 배치 크기가 작거나 작을수록 트레이닝 신호의 잡음이 커지는 것입니다. 맞습니까? 그렇다면 배치 크기를 줄일 때 학습 속도를 높여야한다는 의미입니까? – bohr
또한 앞서 언급 한 두 가지 대안에 대해 말하면서 - ** 입력 크기를 줄이거 나 모델 크기를 줄이십시오 ** - 이것에 대해서는 약간의 걱정이 있습니다. 내가 아는 한 일부 모델의 입력 크기는 고정되어 있으며 고유하므로 수정하면 오류가 발생합니다. 반면에, vgg 나 googlenet과 같은 기존 모델을 사용하고 있기 때문에 (계산 속도와 모델 품질 측면에서) 얼마나 중요한지, 레이어 중 일부를 버리거나 완전히 연결된 크기를 줄이면 레이어? – bohr
예, 배치 크기에 대한 이해가 정확합니다. 그러나 배치 크기를 줄이는 것이 반드시 학습 속도를 높이거나 그 반대로하는 것을 의미하지는 않습니다. 두 번째 질문 : 데이터 세트가 고정되어 있으면 (예 : 이미지 크기) 입력 크기를 줄이는 것은 옵션이 아니지만 VGG 모델에서 오류가 발생하지 않을 경우 완전히 연결된 레이어를 재교육 (따라서 크기를 조정) 할 수 있습니다 완전히 연결된 레이어 만 원래 입력 크기로 제한됩니다. 예를 들어, 컨볼 루션 레이어를 유지하면서 완전히 연결된 레이어의 크기를 줄임으로써 모델 크기를 줄이는 것이 가능합니다. –