#ifndef __CLASSIFIER_H__
#define __CLASSIFIER_H__

#include <migraphx/program.hpp>

#include <CommonDefinition.h>

namespace migraphxSamples
{

class  Classifier
{
public:
    Classifier();
    
    ~Classifier();

    std::unordered_map<std::string, migraphx::argument> CreateOutputData(migraphx::program &p);

    ErrorCode Initialize(InitializationParameterOfClassifier initializationParameterOfClassifier);

    ErrorCode Classify(const std::vector<cv::Mat> &srcImages,std::vector<std::vector<ResultOfPrediction>> &predictions);

private:
    cv::FileStorage configurationFile;
    
    migraphx::program net;
    cv::Size inputSize;
    std::string inputName;
    migraphx::shape inputShape;

    bool useInt8;
    bool useFP16;
    bool useoffloadcopy;
    

};

}

#endif

