onnxruntime/winml/test/common/protobufHelpers.h

32 lines
1 KiB
C++

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#pragma once
#include "std.h"
#include "winrt_headers.h"
#pragma warning(push)
#pragma warning(disable : 4100)
#ifndef ONNX_API
#define ONNX_API
#endif
#include "onnx/onnx-ml.pb.h"
#pragma warning(pop)
namespace ProtobufHelpers
{
// LoadTensorFromProtobufFile take a path to a FP32 data file and loads it into a 32bit array or
// 16bit array based on isFp16
winml::ITensor LoadTensorFromProtobufFile(const std::wstring& filePath, bool isFp16);
// LoadTensorFloat16FromProtobufFile takes a path to a FP16 data file and loads it into a 16bit array
winml::TensorFloat16Bit LoadTensorFloat16FromProtobufFile(const std::wstring& filePath);
winml::LearningModel CreateModel(
winml::TensorKind kind,
const std::vector<int64_t>& shape,
uint32_t num_elements = 1);
// Populates TensorProto with tensor from protobuf file
bool LoadOnnxTensorFromProtobufFile(onnx::TensorProto& tensor, std::wstring filePath);
}