blob: b57723ba6dc2c3cb8c699bc67eb9956c00cd9161 [file] [log] [blame]
Ryan OShea7d1b1ca2023-08-01 17:15:24 +01001# Copyright © 2020,2023 Arm Ltd. All rights reserved.
Richard Burtondc0c6ed2020-04-08 16:39:05 +01002# SPDX-License-Identifier: MIT
3import inspect
4import sys
5import logging
6
7from ._generated.pyarmnn_version import GetVersion, GetMajorVersion, GetMinorVersion
8
Ryan OShea7d1b1ca2023-08-01 17:15:24 +01009print("WARNING: PyArmNN is deprecated. To use ArmNN on python, please use the tflite delegate. Expected to be removed in release 24.05.")
10
Richard Burtondc0c6ed2020-04-08 16:39:05 +010011# Parsers
Richard Burtondc0c6ed2020-04-08 16:39:05 +010012
13try:
14 from ._generated.pyarmnn_onnxparser import IOnnxParser
15except ImportError as err:
16 logger = logging.getLogger(__name__)
17 message = "Your ArmNN library instance does not support Onnx models parser functionality. "
18 logger.warning("%s Skipped IOnnxParser import.", message)
19 logger.debug(str(err))
20
21
22 def IOnnxParser():
23 """In case people try importing without having Arm NN built with this parser."""
24 raise RuntimeError(message)
25
26try:
Jan Eilers841aca12020-08-12 14:59:06 +010027 from ._generated.pyarmnn_tfliteparser import ITfLiteParser, TfLiteParserOptions
Richard Burtondc0c6ed2020-04-08 16:39:05 +010028except ImportError as err:
29 logger = logging.getLogger(__name__)
30 message = "Your ArmNN library instance does not support TF lite models parser functionality. "
31 logger.warning("%s Skipped ITfLiteParser import.", message)
32 logger.debug(str(err))
33
34
35 def ITfLiteParser():
36 """In case people try importing without having Arm NN built with this parser."""
37 raise RuntimeError(message)
38
wangg5f960d92020-08-26 01:44:32 +000039try:
40 from ._generated.pyarmnn_deserializer import IDeserializer
41except ImportError as err:
42 logger = logging.getLogger(__name__)
Francis Murtaghbb6c6492022-02-09 15:13:38 +000043 message = "Your ArmNN library instance does not have ArmNN model (.armnn) parser functionality. "
wangg5f960d92020-08-26 01:44:32 +000044 logger.warning("%s Skipped IDeserializer import.", message)
45 logger.debug(str(err))
46
47 def IDeserializer():
48 """In case people try importing without having ArmNN built with this parser."""
49 raise RuntimeError(message)
50
Richard Burtondc0c6ed2020-04-08 16:39:05 +010051# Network
52from ._generated.pyarmnn import Optimize, OptimizerOptions, IOptimizedNetwork, IInputSlot, \
53 IOutputSlot, IConnectableLayer, INetwork
54
55# Backend
56from ._generated.pyarmnn import BackendId
57from ._generated.pyarmnn import IDeviceSpec
alexander73010782021-10-18 19:17:24 +010058from ._generated.pyarmnn import BackendOptions, BackendOption
Richard Burtondc0c6ed2020-04-08 16:39:05 +010059
60# Tensors
61from ._generated.pyarmnn import TensorInfo, TensorShape
62
63# Runtime
64from ._generated.pyarmnn import IRuntime, CreationOptions, INetworkProperties
65
66# Profiler
67from ._generated.pyarmnn import IProfiler
68
69# Types
70from ._generated.pyarmnn import DataType_Float16, DataType_Float32, DataType_QAsymmU8, DataType_Signed32, \
alexander73010782021-10-18 19:17:24 +010071 DataType_Boolean, DataType_QSymmS16, DataType_QSymmS8, DataType_QAsymmS8, ShapeInferenceMethod_ValidateOnly, \
72 ShapeInferenceMethod_InferAndValidate
Teresa Charlin18147332021-11-17 14:34:30 +000073from ._generated.pyarmnn import DataLayout_NCHW, DataLayout_NHWC, DataLayout_NCDHW, DataLayout_NDHWC
Jan Eilers1b2654f2021-09-24 15:45:46 +010074from ._generated.pyarmnn import MemorySource_Malloc, MemorySource_Undefined, MemorySource_DmaBuf, \
75 MemorySource_DmaBufProtected
76from ._generated.pyarmnn import ProfilingDetailsMethod_Undefined, ProfilingDetailsMethod_DetailsWithEvents, \
77 ProfilingDetailsMethod_DetailsOnly
Richard Burtondc0c6ed2020-04-08 16:39:05 +010078
79from ._generated.pyarmnn import ActivationFunction_Abs, ActivationFunction_BoundedReLu, ActivationFunction_LeakyReLu, \
80 ActivationFunction_Linear, ActivationFunction_ReLu, ActivationFunction_Sigmoid, ActivationFunction_SoftReLu, \
81 ActivationFunction_Sqrt, ActivationFunction_Square, ActivationFunction_TanH, ActivationDescriptor
82from ._generated.pyarmnn import ArgMinMaxFunction_Max, ArgMinMaxFunction_Min, ArgMinMaxDescriptor
83from ._generated.pyarmnn import BatchNormalizationDescriptor, BatchToSpaceNdDescriptor
Teresa Charlinf7b50112021-11-18 15:24:50 +000084from ._generated.pyarmnn import ChannelShuffleDescriptor, ComparisonDescriptor, ComparisonOperation_Equal, \
85 ComparisonOperation_Greater, ComparisonOperation_GreaterOrEqual, ComparisonOperation_Less, \
Richard Burtondc0c6ed2020-04-08 16:39:05 +010086 ComparisonOperation_LessOrEqual, ComparisonOperation_NotEqual
87from ._generated.pyarmnn import UnaryOperation_Abs, UnaryOperation_Exp, UnaryOperation_Sqrt, UnaryOperation_Rsqrt, \
88 UnaryOperation_Neg, ElementwiseUnaryDescriptor
Cathal Corbettf0836e02021-11-18 18:17:38 +000089from ._generated.pyarmnn import LogicalBinaryOperation_LogicalAnd, LogicalBinaryOperation_LogicalOr, \
90 LogicalBinaryDescriptor
Teresa Charlin18147332021-11-17 14:34:30 +000091from ._generated.pyarmnn import Convolution2dDescriptor, Convolution3dDescriptor, DepthToSpaceDescriptor, \
92 DepthwiseConvolution2dDescriptor, DetectionPostProcessDescriptor, FakeQuantizationDescriptor, FillDescriptor, \
93 FullyConnectedDescriptor, GatherDescriptor, InstanceNormalizationDescriptor, LstmDescriptor, \
94 L2NormalizationDescriptor, MeanDescriptor
Richard Burtondc0c6ed2020-04-08 16:39:05 +010095from ._generated.pyarmnn import NormalizationAlgorithmChannel_Across, NormalizationAlgorithmChannel_Within, \
96 NormalizationAlgorithmMethod_LocalBrightness, NormalizationAlgorithmMethod_LocalContrast, NormalizationDescriptor
Teresa Charlincd3fdae2021-11-18 15:51:36 +000097from ._generated.pyarmnn import PaddingMode_Constant, PaddingMode_Reflect, PaddingMode_Symmetric, PadDescriptor
Richard Burtondc0c6ed2020-04-08 16:39:05 +010098from ._generated.pyarmnn import PermutationVector, PermuteDescriptor
99from ._generated.pyarmnn import OutputShapeRounding_Ceiling, OutputShapeRounding_Floor, \
100 PaddingMethod_Exclude, PaddingMethod_IgnoreValue, PoolingAlgorithm_Average, PoolingAlgorithm_L2, \
Ryan OShea89655002022-03-09 02:07:24 +0000101 PoolingAlgorithm_Max, Pooling2dDescriptor, Pooling3dDescriptor
Ryan OShea09a05222021-11-18 16:52:41 +0000102from ._generated.pyarmnn import ReduceDescriptor, ReduceOperation_Prod, ReduceOperation_Max, ReduceOperation_Mean, \
103 ReduceOperation_Min, ReduceOperation_Sum
Richard Burtondc0c6ed2020-04-08 16:39:05 +0100104from ._generated.pyarmnn import ResizeMethod_Bilinear, ResizeMethod_NearestNeighbor, ResizeDescriptor, \
105 ReshapeDescriptor, SliceDescriptor, SpaceToBatchNdDescriptor, SpaceToDepthDescriptor, StandInDescriptor, \
106 StackDescriptor, StridedSliceDescriptor, SoftmaxDescriptor, TransposeConvolution2dDescriptor, \
Cathal Corbett2b4182f2021-11-18 10:28:47 +0000107 TransposeDescriptor, SplitterDescriptor
Richard Burtondc0c6ed2020-04-08 16:39:05 +0100108from ._generated.pyarmnn import ConcatDescriptor, CreateDescriptorForConcatenation
109
110from ._generated.pyarmnn import LstmInputParams, QuantizedLstmInputParams
111
112# Public API
113# Quantization
114from ._quantization.quantize_and_dequantize import quantize, dequantize
115
116# Tensor
117from ._tensor.tensor import Tensor
118from ._tensor.const_tensor import ConstTensor
119from ._tensor.workload_tensors import make_input_tensors, make_output_tensors, workload_tensors_to_ndarray
120
121# Utilities
122from ._utilities.profiling_helper import ProfilerData, get_profiling_data
123
124from ._version import __version__, __arm_ml_version__
125
126ARMNN_VERSION = GetVersion()
127
128
129def __check_version():
130 from ._version import check_armnn_version
131 check_armnn_version(ARMNN_VERSION)
132
133
134__check_version()
135
136__all__ = []
137
138__private_api_names = ['__check_version']
139
140for name, obj in inspect.getmembers(sys.modules[__name__]):
141 if inspect.isclass(obj) or inspect.isfunction(obj):
142 if name not in __private_api_names:
143 __all__.append(name)