更多darknet預測分類動態庫文章參考:自己動手實現darknet預測分類動態庫
預測分類函數:float *network_predict_gpu(network net, float *input)
float *network_predict_gpu(network net, float *input)
{
if (net.gpu_index != cuda_get_device())
cuda_set_device(net.gpu_index);
int size = get_network_input_size(net) * net.batch;
network_state state;
state.index = 0;
state.net = net;
//state.input = cuda_make_array(input, size); // memory will be allocated in the parse_network_cfg_custom()
state.input = net.input_state_gpu;
memcpy(net.input_pinned_cpu, input, size * sizeof(float));
cuda_push_array(state.input, net.input_pinned_cpu, size);
state.truth = 0;
state.train = 0;
state.delta = 0;
forward_network_gpu(net, state);
float *out = get_network_output_gpu(net);
//cuda_free(state.input); // will be freed in the free_network()
return out;
}
darknet源碼解析:get_network_input_size
darknet源碼解析:network結構體之input_state_gpu
darknet源碼解析:networ結構體之input_pinned_gpu
darknet源碼解析:forward_network_gpu
darknet源碼解析:get_network_output_gpu()