remove test/ docs/ etc.
This commit is contained in:
+1
-1
@@ -31,7 +31,7 @@ let package = Package(
|
|||||||
.target(name: "OnnxRuntimeBindings",
|
.target(name: "OnnxRuntimeBindings",
|
||||||
dependencies: ["onnxruntime"],
|
dependencies: ["onnxruntime"],
|
||||||
path: "objectivec",
|
path: "objectivec",
|
||||||
exclude: ["test", "docs", "ReadMe.md", "format_objc.sh"],
|
exclude: ["ReadMe.md", "format_objc.sh"],
|
||||||
cxxSettings: [
|
cxxSettings: [
|
||||||
.define("SPM_BUILD"),
|
.define("SPM_BUILD"),
|
||||||
.unsafeFlags(["-std=c++17",
|
.unsafeFlags(["-std=c++17",
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
module: ONNX Runtime Objective-C API
|
|
||||||
author: ONNX Runtime Authors
|
|
||||||
author_url: https://www.onnxruntime.ai
|
|
||||||
github_url: https://github.com/microsoft/onnxruntime
|
|
||||||
|
|
||||||
objc: true
|
|
||||||
umbrella_header: ../include/onnxruntime.h
|
|
||||||
framework_root: ..
|
|
||||||
|
|
||||||
readme: ./main_page.md
|
|
||||||
|
|
||||||
hide_documentation_coverage: true
|
|
||||||
undocumented_text: ""
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
# ONNX Runtime Objective-C API
|
|
||||||
|
|
||||||
ONNX Runtime provides an Objective-C API.
|
|
||||||
|
|
||||||
It can be used from Objective-C/C++ or Swift with a bridging header.
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
# Objective-C API Documentation
|
|
||||||
|
|
||||||
The API should be documented with comments in the [public header files](../include).
|
|
||||||
|
|
||||||
## Documentation Generation
|
|
||||||
|
|
||||||
The [Jazzy](https://github.com/realm/jazzy) tool is used to generate documentation from the code.
|
|
||||||
|
|
||||||
To generate documentation, from the repo root, run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
jazzy --config objectivec/docs/jazzy_config.yaml --output <output directory>
|
|
||||||
```
|
|
||||||
|
|
||||||
The generated documentation website files will be in `<output directory>`.
|
|
||||||
|
|
||||||
[main_page.md](./main_page.md) contains content for the main page of the generated documentation website.
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
// Licensed under the MIT License.
|
|
||||||
|
|
||||||
static_assert(__has_feature(objc_arc), "Objective-C ARC must be enabled.");
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
// Licensed under the MIT License.
|
|
||||||
|
|
||||||
#import <XCTest/XCTest.h>
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
|
||||||
|
|
||||||
#define ORTAssertNullableResultSuccessful(result, error) \
|
|
||||||
do { \
|
|
||||||
XCTAssertNotNil(result, @"Expected non-nil result but got nil. Error: %@", error); \
|
|
||||||
XCTAssertNil(error); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define ORTAssertBoolResultSuccessful(result, error) \
|
|
||||||
do { \
|
|
||||||
XCTAssertTrue(result, @"Expected true result but got false. Error: %@", error); \
|
|
||||||
XCTAssertNil(error); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define ORTAssertNullableResultUnsuccessful(result, error) \
|
|
||||||
do { \
|
|
||||||
XCTAssertNil(result); \
|
|
||||||
XCTAssertNotNil(error); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define ORTAssertBoolResultUnsuccessful(result, error) \
|
|
||||||
do { \
|
|
||||||
XCTAssertFalse(result); \
|
|
||||||
XCTAssertNotNil(error); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
// Licensed under the MIT License.
|
|
||||||
|
|
||||||
#import <XCTest/XCTest.h>
|
|
||||||
|
|
||||||
#import "ort_env.h"
|
|
||||||
|
|
||||||
#import "test/assertion_utils.h"
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
|
||||||
|
|
||||||
@interface ORTEnvTest : XCTestCase
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation ORTEnvTest
|
|
||||||
- (void)testGetOrtVersion {
|
|
||||||
NSString* ver = ORTVersion();
|
|
||||||
XCTAssertNotNil(ver);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)testInitOk {
|
|
||||||
NSError* err = nil;
|
|
||||||
ORTEnv* env = [[ORTEnv alloc] initWithLoggingLevel:ORTLoggingLevelWarning
|
|
||||||
error:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(env, err);
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
|
||||||
@@ -1,243 +0,0 @@
|
|||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
// Licensed under the MIT License.
|
|
||||||
|
|
||||||
#import <XCTest/XCTest.h>
|
|
||||||
|
|
||||||
#import "ort_coreml_execution_provider.h"
|
|
||||||
#import "ort_xnnpack_execution_provider.h"
|
|
||||||
#import "ort_env.h"
|
|
||||||
#import "ort_session.h"
|
|
||||||
#import "ort_value.h"
|
|
||||||
|
|
||||||
#import "test/assertion_utils.h"
|
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
|
||||||
|
|
||||||
@interface ORTSessionTest : XCTestCase
|
|
||||||
|
|
||||||
@property(readonly, nullable) ORTEnv* ortEnv;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation ORTSessionTest
|
|
||||||
|
|
||||||
- (void)setUp {
|
|
||||||
[super setUp];
|
|
||||||
|
|
||||||
self.continueAfterFailure = NO;
|
|
||||||
|
|
||||||
NSError* err = nil;
|
|
||||||
_ortEnv = [[ORTEnv alloc] initWithLoggingLevel:ORTLoggingLevelWarning
|
|
||||||
error:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(_ortEnv, err);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)tearDown {
|
|
||||||
_ortEnv = nil;
|
|
||||||
|
|
||||||
[super tearDown];
|
|
||||||
}
|
|
||||||
|
|
||||||
// model with an Add op
|
|
||||||
// inputs: A, B
|
|
||||||
// output: C = A + B
|
|
||||||
+ (NSString*)getAddModelPath {
|
|
||||||
NSBundle* bundle = [NSBundle bundleForClass:[ORTSessionTest class]];
|
|
||||||
NSString* path = [bundle pathForResource:@"single_add.basic"
|
|
||||||
ofType:@"ort"];
|
|
||||||
return path;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (NSMutableData*)dataWithScalarFloat:(float)value {
|
|
||||||
NSMutableData* data = [[NSMutableData alloc] initWithBytes:&value length:sizeof(value)];
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (ORTValue*)ortValueWithScalarFloatData:(NSMutableData*)data {
|
|
||||||
NSArray<NSNumber*>* shape = @[ @1 ];
|
|
||||||
NSError* err = nil;
|
|
||||||
ORTValue* ortValue = [[ORTValue alloc] initWithTensorData:data
|
|
||||||
elementType:ORTTensorElementDataTypeFloat
|
|
||||||
shape:shape
|
|
||||||
error:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(ortValue, err);
|
|
||||||
return ortValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (ORTSessionOptions*)makeSessionOptions {
|
|
||||||
NSError* err = nil;
|
|
||||||
ORTSessionOptions* sessionOptions = [[ORTSessionOptions alloc] initWithError:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(sessionOptions, err);
|
|
||||||
return sessionOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (ORTRunOptions*)makeRunOptions {
|
|
||||||
NSError* err = nil;
|
|
||||||
ORTRunOptions* runOptions = [[ORTRunOptions alloc] initWithError:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(runOptions, err);
|
|
||||||
return runOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)testInitAndRunWithPreallocatedOutputOk {
|
|
||||||
NSMutableData* aData = [ORTSessionTest dataWithScalarFloat:1.0f];
|
|
||||||
NSMutableData* bData = [ORTSessionTest dataWithScalarFloat:2.0f];
|
|
||||||
NSMutableData* cData = [ORTSessionTest dataWithScalarFloat:0.0f];
|
|
||||||
|
|
||||||
ORTValue* a = [ORTSessionTest ortValueWithScalarFloatData:aData];
|
|
||||||
ORTValue* b = [ORTSessionTest ortValueWithScalarFloatData:bData];
|
|
||||||
ORTValue* c = [ORTSessionTest ortValueWithScalarFloatData:cData];
|
|
||||||
|
|
||||||
NSError* err = nil;
|
|
||||||
ORTSession* session = [[ORTSession alloc] initWithEnv:self.ortEnv
|
|
||||||
modelPath:[ORTSessionTest getAddModelPath]
|
|
||||||
sessionOptions:[ORTSessionTest makeSessionOptions]
|
|
||||||
error:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(session, err);
|
|
||||||
|
|
||||||
BOOL runResult = [session runWithInputs:@{@"A" : a, @"B" : b}
|
|
||||||
outputs:@{@"C" : c}
|
|
||||||
runOptions:[ORTSessionTest makeRunOptions]
|
|
||||||
error:&err];
|
|
||||||
ORTAssertBoolResultSuccessful(runResult, err);
|
|
||||||
|
|
||||||
const float cExpected = 3.0f;
|
|
||||||
float cActual;
|
|
||||||
memcpy(&cActual, cData.bytes, sizeof(float));
|
|
||||||
XCTAssertEqual(cActual, cExpected);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)testInitAndRunOk {
|
|
||||||
NSMutableData* aData = [ORTSessionTest dataWithScalarFloat:1.0f];
|
|
||||||
NSMutableData* bData = [ORTSessionTest dataWithScalarFloat:2.0f];
|
|
||||||
|
|
||||||
ORTValue* a = [ORTSessionTest ortValueWithScalarFloatData:aData];
|
|
||||||
ORTValue* b = [ORTSessionTest ortValueWithScalarFloatData:bData];
|
|
||||||
|
|
||||||
NSError* err = nil;
|
|
||||||
ORTSession* session = [[ORTSession alloc] initWithEnv:self.ortEnv
|
|
||||||
modelPath:[ORTSessionTest getAddModelPath]
|
|
||||||
sessionOptions:[ORTSessionTest makeSessionOptions]
|
|
||||||
error:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(session, err);
|
|
||||||
|
|
||||||
NSDictionary<NSString*, ORTValue*>* outputs =
|
|
||||||
[session runWithInputs:@{@"A" : a, @"B" : b}
|
|
||||||
outputNames:[NSSet setWithArray:@[ @"C" ]]
|
|
||||||
runOptions:[ORTSessionTest makeRunOptions]
|
|
||||||
error:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(outputs, err);
|
|
||||||
|
|
||||||
ORTValue* cOutput = outputs[@"C"];
|
|
||||||
XCTAssertNotNil(cOutput);
|
|
||||||
|
|
||||||
NSData* cData = [cOutput tensorDataWithError:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(cData, err);
|
|
||||||
|
|
||||||
const float cExpected = 3.0f;
|
|
||||||
float cActual;
|
|
||||||
memcpy(&cActual, cData.bytes, sizeof(float));
|
|
||||||
XCTAssertEqual(cActual, cExpected);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)testGetNamesOk {
|
|
||||||
NSError* err = nil;
|
|
||||||
ORTSession* session = [[ORTSession alloc] initWithEnv:self.ortEnv
|
|
||||||
modelPath:[ORTSessionTest getAddModelPath]
|
|
||||||
sessionOptions:[ORTSessionTest makeSessionOptions]
|
|
||||||
error:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(session, err);
|
|
||||||
|
|
||||||
NSArray<NSString*>* inputNames = [session inputNamesWithError:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(inputNames, err);
|
|
||||||
XCTAssertEqualObjects(inputNames, (@[ @"A", @"B" ]));
|
|
||||||
|
|
||||||
NSArray<NSString*>* overridableInitializerNames = [session overridableInitializerNamesWithError:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(overridableInitializerNames, err);
|
|
||||||
XCTAssertEqualObjects(overridableInitializerNames, (@[]));
|
|
||||||
|
|
||||||
NSArray<NSString*>* outputNames = [session outputNamesWithError:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(outputNames, err);
|
|
||||||
XCTAssertEqualObjects(outputNames, (@[ @"C" ]));
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)testInitFailsWithInvalidPath {
|
|
||||||
NSString* invalidModelPath = @"invalid/path/to/model.ort";
|
|
||||||
NSError* err = nil;
|
|
||||||
ORTSession* session = [[ORTSession alloc] initWithEnv:self.ortEnv
|
|
||||||
modelPath:invalidModelPath
|
|
||||||
sessionOptions:[ORTSessionTest makeSessionOptions]
|
|
||||||
error:&err];
|
|
||||||
ORTAssertNullableResultUnsuccessful(session, err);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)testRunFailsWithInvalidInput {
|
|
||||||
NSMutableData* dData = [ORTSessionTest dataWithScalarFloat:1.0f];
|
|
||||||
NSMutableData* cData = [ORTSessionTest dataWithScalarFloat:0.0f];
|
|
||||||
|
|
||||||
ORTValue* d = [ORTSessionTest ortValueWithScalarFloatData:dData];
|
|
||||||
ORTValue* c = [ORTSessionTest ortValueWithScalarFloatData:cData];
|
|
||||||
|
|
||||||
NSError* err = nil;
|
|
||||||
ORTSession* session = [[ORTSession alloc] initWithEnv:self.ortEnv
|
|
||||||
modelPath:[ORTSessionTest getAddModelPath]
|
|
||||||
sessionOptions:[ORTSessionTest makeSessionOptions]
|
|
||||||
error:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(session, err);
|
|
||||||
|
|
||||||
BOOL runResult = [session runWithInputs:@{@"D" : d}
|
|
||||||
outputs:@{@"C" : c}
|
|
||||||
runOptions:[ORTSessionTest makeRunOptions]
|
|
||||||
error:&err];
|
|
||||||
ORTAssertBoolResultUnsuccessful(runResult, err);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)testAppendCoreMLEP {
|
|
||||||
NSError* err = nil;
|
|
||||||
ORTSessionOptions* sessionOptions = [ORTSessionTest makeSessionOptions];
|
|
||||||
ORTCoreMLExecutionProviderOptions* coreMLOptions = [[ORTCoreMLExecutionProviderOptions alloc] init];
|
|
||||||
coreMLOptions.enableOnSubgraphs = YES; // set an arbitrary option
|
|
||||||
|
|
||||||
BOOL appendResult = [sessionOptions appendCoreMLExecutionProviderWithOptions:coreMLOptions
|
|
||||||
error:&err];
|
|
||||||
|
|
||||||
if (!ORTIsCoreMLExecutionProviderAvailable()) {
|
|
||||||
ORTAssertBoolResultUnsuccessful(appendResult, err);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ORTAssertBoolResultSuccessful(appendResult, err);
|
|
||||||
|
|
||||||
ORTSession* session = [[ORTSession alloc] initWithEnv:self.ortEnv
|
|
||||||
modelPath:[ORTSessionTest getAddModelPath]
|
|
||||||
sessionOptions:sessionOptions
|
|
||||||
error:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(session, err);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)testAppendXnnpackEP {
|
|
||||||
NSError* err = nil;
|
|
||||||
ORTSessionOptions* sessionOptions = [ORTSessionTest makeSessionOptions];
|
|
||||||
ORTXnnpackExecutionProviderOptions* XnnpackOptions = [[ORTXnnpackExecutionProviderOptions alloc] init];
|
|
||||||
XnnpackOptions.intra_op_num_threads = 2;
|
|
||||||
|
|
||||||
BOOL appendResult = [sessionOptions appendXnnpackExecutionProviderWithOptions:XnnpackOptions
|
|
||||||
error:&err];
|
|
||||||
// Without xnnpack EP in building also can pass the test
|
|
||||||
NSString* err_msg = [err localizedDescription];
|
|
||||||
if (!appendResult && [err_msg containsString:@"XNNPACK execution provider is not supported in this build. "]) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ORTAssertBoolResultSuccessful(appendResult, err);
|
|
||||||
|
|
||||||
ORTSession* session = [[ORTSession alloc] initWithEnv:self.ortEnv
|
|
||||||
modelPath:[ORTSessionTest getAddModelPath]
|
|
||||||
sessionOptions:sessionOptions
|
|
||||||
error:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(session, err);
|
|
||||||
}
|
|
||||||
@end
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
||||||
// Licensed under the MIT License.
|
|
||||||
|
|
||||||
#import <XCTest/XCTest.h>
|
|
||||||
|
|
||||||
#import "ort_value.h"
|
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#import "test/assertion_utils.h"
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
|
||||||
|
|
||||||
@interface ORTValueTest : XCTestCase
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation ORTValueTest
|
|
||||||
|
|
||||||
- (void)setUp {
|
|
||||||
[super setUp];
|
|
||||||
|
|
||||||
self.continueAfterFailure = NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)testInitTensorOk {
|
|
||||||
int32_t value = 42;
|
|
||||||
NSMutableData* data = [[NSMutableData alloc] initWithBytes:&value
|
|
||||||
length:sizeof(int32_t)];
|
|
||||||
NSArray<NSNumber*>* shape = @[ @1 ];
|
|
||||||
|
|
||||||
const ORTTensorElementDataType elementType = ORTTensorElementDataTypeInt32;
|
|
||||||
|
|
||||||
NSError* err = nil;
|
|
||||||
ORTValue* ortValue = [[ORTValue alloc] initWithTensorData:data
|
|
||||||
elementType:elementType
|
|
||||||
shape:shape
|
|
||||||
error:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(ortValue, err);
|
|
||||||
|
|
||||||
auto checkTensorInfo = [&](ORTTensorTypeAndShapeInfo* tensorInfo) {
|
|
||||||
XCTAssertEqual(tensorInfo.elementType, elementType);
|
|
||||||
XCTAssertEqualObjects(tensorInfo.shape, shape);
|
|
||||||
};
|
|
||||||
|
|
||||||
ORTValueTypeInfo* typeInfo = [ortValue typeInfoWithError:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(typeInfo, err);
|
|
||||||
XCTAssertEqual(typeInfo.type, ORTValueTypeTensor);
|
|
||||||
XCTAssertNotNil(typeInfo.tensorTypeAndShapeInfo);
|
|
||||||
checkTensorInfo(typeInfo.tensorTypeAndShapeInfo);
|
|
||||||
|
|
||||||
ORTTensorTypeAndShapeInfo* tensorInfo = [ortValue tensorTypeAndShapeInfoWithError:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(tensorInfo, err);
|
|
||||||
checkTensorInfo(tensorInfo);
|
|
||||||
|
|
||||||
NSData* actualData = [ortValue tensorDataWithError:&err];
|
|
||||||
ORTAssertNullableResultSuccessful(actualData, err);
|
|
||||||
XCTAssertEqual(actualData.length, sizeof(int32_t));
|
|
||||||
int32_t actualValue;
|
|
||||||
memcpy(&actualValue, actualData.bytes, sizeof(int32_t));
|
|
||||||
XCTAssertEqual(actualValue, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)testInitTensorFailsWithDataSmallerThanShape {
|
|
||||||
std::vector<int32_t> values{1, 2, 3, 4};
|
|
||||||
NSMutableData* data = [[NSMutableData alloc] initWithBytes:values.data()
|
|
||||||
length:values.size() * sizeof(int32_t)];
|
|
||||||
NSArray<NSNumber*>* shape = @[ @2, @3 ]; // too large
|
|
||||||
|
|
||||||
NSError* err = nil;
|
|
||||||
ORTValue* ortValue = [[ORTValue alloc] initWithTensorData:data
|
|
||||||
elementType:ORTTensorElementDataTypeInt32
|
|
||||||
shape:shape
|
|
||||||
error:&err];
|
|
||||||
ORTAssertNullableResultUnsuccessful(ortValue, err);
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
|
||||||
-12
@@ -1,12 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Get directory this script is in
|
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
||||||
|
|
||||||
cd ${DIR}
|
|
||||||
|
|
||||||
python3 ./single_add_gen.py
|
|
||||||
|
|
||||||
ORT_CONVERT_ONNX_MODELS_TO_ORT_OPTIMIZATION_LEVEL=basic python3 -m onnxruntime.tools.convert_onnx_models_to_ort --optimization_style=Fixed .
|
|
||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
-19
@@ -1,19 +0,0 @@
|
|||||||
import onnx
|
|
||||||
from onnx import TensorProto, helper
|
|
||||||
|
|
||||||
graph = helper.make_graph(
|
|
||||||
[ # nodes
|
|
||||||
helper.make_node("Add", ["A", "B"], ["C"], "Add"),
|
|
||||||
],
|
|
||||||
"SingleAdd", # name
|
|
||||||
[ # inputs
|
|
||||||
helper.make_tensor_value_info("A", TensorProto.FLOAT, [1]),
|
|
||||||
helper.make_tensor_value_info("B", TensorProto.FLOAT, [1]),
|
|
||||||
],
|
|
||||||
[ # outputs
|
|
||||||
helper.make_tensor_value_info("C", TensorProto.FLOAT, [1]),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
|
||||||
model = helper.make_model(graph, opset_imports=[helper.make_opsetid("", 12)])
|
|
||||||
onnx.save(model, r"single_add.onnx")
|
|
||||||
Reference in New Issue
Block a user