更多darknet源代碼學習筆記,參看:darknet源碼學習:預測分類函數float *network_predict_gpu(network net, float *input)
forward_network_gpu()函數在network_kenels.cu中實現
void forward_network_gpu(network net, network_state state)
{
state.workspace = net.workspace;
int i;
for(i = 0; i < net.n; ++i){
state.index = i;
layer l = net.layers[i];
if(l.delta_gpu && state.train){
//預測分類的時候,fill_ongpu函數不調用
fill_ongpu(l.outputs * l.batch, 0, l.delta_gpu, 1);
}
l.forward_gpu(l, state);
if(net.wait_stream)
cudaStreamSynchronize(get_cuda_stream());
state.input = l.output_gpu;
}
}
darknet源碼解析:network結構體之workspace
darknet源碼解析:network結構體之n,本應用中使用cfg文件網絡層數爲27,即net.n=27。
預測分類的時候,fill_ongpu函數不調用,所以此處不作解析。
darknet源碼解析:layer結構體之forward_gpu