前提・実現したいこと
https://noitalog.tokyo/darknet/
上記のサイトを参考にして、独自のデータを学習させたいと思ってます。
クラス数は2、学習に使う画像は約800枚
発生している問題・エラーメッセージ
77 conv 512 1 x 1/ 1 1 x 1 x1024 -> 1 x 1 x 512 0.001 BF 78 conv 1024 3 x 3/ 1 1 x 1 x 512 -> 1 x 1 x1024 0.009 BF 79 conv 512 1 x 1/ 1 1 x 1 x1024 -> 1 x 1 x 512 0.001 BF 80 Try to set subdivisions=64 in your cfg-file. CUDA status Error: file: ....\src\dark_cuda.c : cuda_make_array() : line: 361 : build time: Jan 20 2020 - 13:42:41 CUDA Error: out of memory
該当のソースコード
一応dark_cuda.cの360行あたりをを乗っけておきます
エラーの部分
351line
1 CHECK_CUDA(status);
C
1float *cuda_make_array(float *x, size_t n) 2{ 3 float *x_gpu; 4 size_t size = sizeof(float)*n; 5 cudaError_t status = cudaMalloc((void **)&x_gpu, size); 6 //cudaError_t status = cudaMallocManaged((void **)&x_gpu, size, cudaMemAttachGlobal); 7 //status = cudaMemAdvise(x_gpu, size, cudaMemAdviseSetPreferredLocation, cudaCpuDeviceId); 8 if (status != cudaSuccess) fprintf(stderr, " Try to set subdivisions=64 in your cfg-file. \n"); 9 CHECK_CUDA(status); 10 if(x){ 11 //status = cudaMemcpy(x_gpu, x, size, cudaMemcpyHostToDevice); 12 status = cudaMemcpyAsync(x_gpu, x, size, cudaMemcpyDefault, get_cuda_stream()); 13 CHECK_CUDA(status); 14 } 15 if(!x_gpu) error("Cuda malloc failed\n"); 16 return x_gpu; 17} 18
試したこと
色々調べて
voc.cfgの値を変更したりしましたが。それでも解決しませんでした。
具体的にはsubdivisions の値は大きいとGPUのメモリを占領しなくなるとかで初期の16から、32,64に変更してみたり。
batchサイズも64から16だったり2にまで減らしてみたり
nvidia-smiの実行↓
Wed Jan 22 13:03:33 2020 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 441.66 Driver Version: 441.66 CUDA Version: 10.2 | |-------------------------------+----------------------+----------------------+ | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 645 WDDM | 00000000:01:00.0 N/A | N/A | | 30% 33C P8 N/A / N/A | 406MiB / 1024MiB | N/A Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 Not Supported | +-----------------------------------------------------------------------------+
補足情報(FW/ツールのバージョンなど)
windows 10
darknet
yolov3
言語 c
opencv 3.4.0(だったはず)
cuda 10.2
gpu geforce gtx645
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。