darknet源碼學習:預測分類函數float *network_predict_gpu(network net, float *input)

更多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源碼解析:cuda_push_array

darknet源碼解析:forward_network_gpu

darknet源碼解析:get_network_output_gpu()

 

發佈了373 篇原創文章 · 獲贊 151 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章