main.cpp 1.66 KB
Newer Older
liucong's avatar
liucong committed
1
2
3
4
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <SimpleLog.h>
liucong's avatar
liucong committed
5
6
#include <Filesystem.h>
#include <Classifier.h>
liucong's avatar
liucong committed
7
8
9
10
11
12

int main()
{
    // 创建分类器
    migraphxSamples::Classifier classifier;
    migraphxSamples::InitializationParameterOfClassifier initParamOfClassifier;
liucong's avatar
liucong committed
13
14
15
    initParamOfClassifier.configFilePath = CONFIG_FILE;
    migraphxSamples::ErrorCode errorCode = classifier.Initialize(initParamOfClassifier);
    if(errorCode != migraphxSamples::SUCCESS)
liucong's avatar
liucong committed
16
17
18
19
20
21
22
    {
        LOG_ERROR(stdout, "fail to initialize ResNet50!\n");
        exit(-1);
    }
    LOG_INFO(stdout, "succeed to initialize ResNet50\n");

    // 读取测试图片
liucong's avatar
liucong committed
23
    cv::Mat srcImage = cv::imread("../Resource/Images/ImageNet_01.jpg", 1);
liucong's avatar
liucong committed
24
25

    // 设置batchsize
liucong's avatar
liucong committed
26
    int batchsize = 1;
liucong's avatar
liucong committed
27
    std::vector<cv::Mat> srcImages;
liucong's avatar
liucong committed
28
    for(int i = 0; i < batchsize; ++i)
liucong's avatar
liucong committed
29
30
31
32
33
34
    {
        srcImages.push_back(srcImage);
    }

    // 推理
    std::vector<std::vector<migraphxSamples::ResultOfPrediction>> predictions;
liucong's avatar
liucong committed
35
    classifier.Classify(srcImages, predictions);
liucong's avatar
liucong committed
36
37

    // 获取推理结果
liucong's avatar
liucong committed
38
39
    LOG_INFO(stdout, "========== Classification Results ==========\n");
    for(int i = 0; i < predictions.size(); ++i)
liucong's avatar
liucong committed
40
41
    {
        // 一个batch中第i幅图像的结果
liucong's avatar
liucong committed
42
43
44
        LOG_INFO(stdout, "========== %d result ==========\n", i);
        std::vector<migraphxSamples::ResultOfPrediction> resultOfPredictions = predictions[i];
        for(int j = 0; j < resultOfPredictions.size(); ++j)
liucong's avatar
liucong committed
45
        {
liucong's avatar
liucong committed
46
47
            migraphxSamples::ResultOfPrediction prediction = resultOfPredictions[j];
            LOG_INFO(stdout, "label:%d,confidence:%f\n", prediction.label, prediction.confidence);
liucong's avatar
liucong committed
48
49
50
51
52
        }
    }

    return 0;
}