version:2.1.5

bugfixes:
update:拨号使用ocr进行识别
This commit is contained in:
2025-05-22 14:30:12 +08:00
parent a86592005f
commit d7e830985f
226 changed files with 66016 additions and 81139 deletions

View File

@@ -13,7 +13,6 @@
// limitations under the License.
#pragma once
#include <set>
#include <string>
@@ -41,142 +40,140 @@
#endif
namespace paddle {
namespace lite_api {
namespace lite_api {
enum class TargetType : int {
kUnk = 0,
kHost = 1,
kX86 = 2,
kCUDA = 3,
kARM = 4,
kOpenCL = 5,
kAny = 6, // any target
kFPGA = 7,
kNPU = 8,
kXPU = 9,
kBM = 10,
kMLU = 11,
kRKNPU = 12,
kAPU = 13,
kHuaweiAscendNPU = 14,
kImaginationNNA = 15,
kIntelFPGA = 16,
kMetal = 17,
kNNAdapter = 18,
NUM = 19, // number of fields.
};
enum class PrecisionType : int {
kUnk = 0,
kFloat = 1,
kInt8 = 2,
kInt32 = 3,
kAny = 4, // any precision
kFP16 = 5,
kBool = 6,
kInt64 = 7,
kInt16 = 8,
kUInt8 = 9,
kFP64 = 10,
NUM = 11, // number of fields.
};
enum class DataLayoutType : int {
kUnk = 0,
kNCHW = 1,
kNHWC = 3,
kImageDefault = 4, // for opencl image2d
kImageFolder = 5, // for opencl image2d
kImageNW = 6, // for opencl image2d
kAny = 2, // any data layout
kMetalTexture2DArray = 7,
kMetalTexture2D = 8,
NUM = 9, // number of fields.
};
enum class TargetType : int {
kUnk = 0,
kHost = 1,
kX86 = 2,
kCUDA = 3,
kARM = 4,
kOpenCL = 5,
kAny = 6, // any target
kFPGA = 7,
kNPU = 8,
kXPU = 9,
kBM = 10,
kMLU = 11,
kRKNPU = 12,
kAPU = 13,
kHuaweiAscendNPU = 14,
kImaginationNNA = 15,
kIntelFPGA = 16,
kMetal = 17,
kNNAdapter = 18,
NUM = 19, // number of fields.
};
enum class PrecisionType : int {
kUnk = 0,
kFloat = 1,
kInt8 = 2,
kInt32 = 3,
kAny = 4, // any precision
kFP16 = 5,
kBool = 6,
kInt64 = 7,
kInt16 = 8,
kUInt8 = 9,
kFP64 = 10,
NUM = 11, // number of fields.
};
enum class DataLayoutType : int {
kUnk = 0,
kNCHW = 1,
kNHWC = 3,
kImageDefault = 4, // for opencl image2d
kImageFolder = 5, // for opencl image2d
kImageNW = 6, // for opencl image2d
kAny = 2, // any data layout
kMetalTexture2DArray = 7,
kMetalTexture2D = 8,
NUM = 9, // number of fields.
};
typedef enum {
LITE_POWER_HIGH = 0,
LITE_POWER_LOW = 1,
LITE_POWER_FULL = 2,
LITE_POWER_NO_BIND = 3,
LITE_POWER_RAND_HIGH = 4,
LITE_POWER_RAND_LOW = 5
} PowerMode;
typedef enum {
LITE_POWER_HIGH = 0,
LITE_POWER_LOW = 1,
LITE_POWER_FULL = 2,
LITE_POWER_NO_BIND = 3,
LITE_POWER_RAND_HIGH = 4,
LITE_POWER_RAND_LOW = 5
} PowerMode;
typedef enum {
CL_TUNE_NONE = 0,
CL_TUNE_RAPID = 1,
CL_TUNE_NORMAL = 2,
CL_TUNE_EXHAUSTIVE = 3
} CLTuneMode;
typedef enum {
CL_TUNE_NONE = 0,
CL_TUNE_RAPID = 1,
CL_TUNE_NORMAL = 2,
CL_TUNE_EXHAUSTIVE = 3
} CLTuneMode;
typedef enum {
CL_PRECISION_AUTO = 0,
CL_PRECISION_FP32 = 1,
CL_PRECISION_FP16 = 2
} CLPrecisionType;
typedef enum {
CL_PRECISION_AUTO = 0,
CL_PRECISION_FP32 = 1,
CL_PRECISION_FP16 = 2
} CLPrecisionType;
typedef enum {
MLU_220 = 0, MLU_270 = 1
} MLUCoreVersion;
typedef enum { MLU_220 = 0, MLU_270 = 1 } MLUCoreVersion;
enum class ActivationType : int {
kIndentity = 0,
kRelu = 1,
kRelu6 = 2,
kPRelu = 3,
kLeakyRelu = 4,
kSigmoid = 5,
kTanh = 6,
kSwish = 7,
kExp = 8,
kAbs = 9,
kHardSwish = 10,
kReciprocal = 11,
kThresholdedRelu = 12,
kElu = 13,
kHardSigmoid = 14,
kLog = 15,
kSigmoid_v2 = 16,
kTanh_v2 = 17,
kGelu = 18,
kErf = 19,
kSign = 20,
kSoftPlus = 21,
kMish = 22,
NUM = 23,
};
enum class ActivationType : int {
kIndentity = 0,
kRelu = 1,
kRelu6 = 2,
kPRelu = 3,
kLeakyRelu = 4,
kSigmoid = 5,
kTanh = 6,
kSwish = 7,
kExp = 8,
kAbs = 9,
kHardSwish = 10,
kReciprocal = 11,
kThresholdedRelu = 12,
kElu = 13,
kHardSigmoid = 14,
kLog = 15,
kSigmoid_v2 = 16,
kTanh_v2 = 17,
kGelu = 18,
kErf = 19,
kSign = 20,
kSoftPlus = 21,
kMish = 22,
NUM = 23,
};
static size_t PrecisionTypeLength(PrecisionType type) {
switch (type) {
case PrecisionType::kFloat:
return 4;
case PrecisionType::kFP64:
return 8;
case PrecisionType::kUInt8:
return 1;
case PrecisionType::kInt8:
return 1;
case PrecisionType::kInt32:
return 4;
case PrecisionType::kInt64:
return 8;
case PrecisionType::kFP16:
return 2;
case PrecisionType::kInt16:
return 2;
default:
return 0;
}
}
static size_t PrecisionTypeLength(PrecisionType type) {
switch (type) {
case PrecisionType::kFloat:
return 4;
case PrecisionType::kFP64:
return 8;
case PrecisionType::kUInt8:
return 1;
case PrecisionType::kInt8:
return 1;
case PrecisionType::kInt32:
return 4;
case PrecisionType::kInt64:
return 8;
case PrecisionType::kFP16:
return 2;
case PrecisionType::kInt16:
return 2;
default:
return 0;
}
}
enum class QuantType : int {
QUANT_INT8,
QUANT_INT16,
};
enum class QuantType : int {
QUANT_INT8,
QUANT_INT16,
};
template<typename T>
struct PrecisionTypeTrait {
constexpr static PrecisionType Type() { return PrecisionType::kUnk; }
};
template <typename T>
struct PrecisionTypeTrait {
constexpr static PrecisionType Type() { return PrecisionType::kUnk; }
};
#define _ForEachPrecisionTypeHelper(callback, cpp_type, precision_type) \
callback(cpp_type, ::paddle::lite_api::PrecisionType::precision_type);
@@ -197,11 +194,11 @@ namespace paddle {
constexpr static PrecisionType Type() { return precision_type; } \
}
_ForEachPrecisionType(DefinePrecisionTypeTrait);
_ForEachPrecisionType(DefinePrecisionTypeTrait);
#ifdef ENABLE_ARM_FP16
typedef __fp16 float16_t;
_ForEachPrecisionTypeHelper(DefinePrecisionTypeTrait, float16_t, kFP16);
typedef __fp16 float16_t;
_ForEachPrecisionTypeHelper(DefinePrecisionTypeTrait, float16_t, kFP16);
#endif
#undef _ForEachPrecisionTypeHelper
@@ -212,71 +209,70 @@ namespace paddle {
#define PRECISION(item__) paddle::lite_api::PrecisionType::item__
#define DATALAYOUT(item__) paddle::lite_api::DataLayoutType::item__
const std::string &ActivationTypeToStr(ActivationType act);
const std::string& ActivationTypeToStr(ActivationType act);
const std::string &TargetToStr(TargetType target);
const std::string& TargetToStr(TargetType target);
const std::string &PrecisionToStr(PrecisionType precision);
const std::string& PrecisionToStr(PrecisionType precision);
const std::string &DataLayoutToStr(DataLayoutType layout);
const std::string& DataLayoutToStr(DataLayoutType layout);
const std::string &TargetRepr(TargetType target);
const std::string& TargetRepr(TargetType target);
const std::string &PrecisionRepr(PrecisionType precision);
const std::string& PrecisionRepr(PrecisionType precision);
const std::string &DataLayoutRepr(DataLayoutType layout);
const std::string& DataLayoutRepr(DataLayoutType layout);
const std::string &CLTuneModeToStr(CLTuneMode mode);
const std::string& CLTuneModeToStr(CLTuneMode mode);
const std::string &CLPrecisionTypeToStr(CLPrecisionType type);
const std::string& CLPrecisionTypeToStr(CLPrecisionType type);
// Get a set of all the elements represented by the target.
std::set<TargetType> ExpandValidTargets(TargetType target = TARGET(kAny));
std::set<TargetType> ExpandValidTargets(TargetType target = TARGET(kAny));
// Get a set of all the elements represented by the precision.
std::set<PrecisionType> ExpandValidPrecisions(
PrecisionType precision = PRECISION(kAny));
std::set<PrecisionType> ExpandValidPrecisions(
PrecisionType precision = PRECISION(kAny));
// Get a set of all the elements represented by the layout.
std::set<DataLayoutType> ExpandValidLayouts(
DataLayoutType layout = DATALAYOUT(kAny));
std::set<DataLayoutType> ExpandValidLayouts(
DataLayoutType layout = DATALAYOUT(kAny));
/*
* Place specifies the execution context of a Kernel or input/output for a
* kernel. It is used to make the analysis of the MIR more clear and accurate.
*/
struct LITE_API Place {
TargetType target{TARGET(kUnk)};
PrecisionType precision{PRECISION(kUnk)};
DataLayoutType layout{DATALAYOUT(kUnk)};
int16_t device{0}; // device ID
struct LITE_API Place {
TargetType target{TARGET(kUnk)};
PrecisionType precision{PRECISION(kUnk)};
DataLayoutType layout{DATALAYOUT(kUnk)};
int16_t device{0}; // device ID
Place() = default;
Place() = default;
Place(TargetType target,
PrecisionType precision = PRECISION(kFloat),
DataLayoutType layout = DATALAYOUT(kNCHW),
int16_t device = 0)
: target(target), precision(precision), layout(layout), device(device) {}
Place(TargetType target,
PrecisionType precision = PRECISION(kFloat),
DataLayoutType layout = DATALAYOUT(kNCHW),
int16_t device = 0)
: target(target), precision(precision), layout(layout), device(device) {}
bool is_valid() const {
return target != TARGET(kUnk) && precision != PRECISION(kUnk) &&
layout != DATALAYOUT(kUnk);
}
bool is_valid() const {
return target != TARGET(kUnk) && precision != PRECISION(kUnk) &&
layout != DATALAYOUT(kUnk);
}
size_t hash() const;
size_t hash() const;
bool operator==(const Place& other) const {
return target == other.target && precision == other.precision &&
layout == other.layout && device == other.device;
}
bool operator==(const Place &other) const {
return target == other.target && precision == other.precision &&
layout == other.layout && device == other.device;
}
bool operator!=(const Place& other) const { return !(*this == other); }
bool operator!=(const Place &other) const { return !(*this == other); }
friend bool operator<(const Place& a, const Place& b);
friend bool operator<(const Place &a, const Place &b);
std::string DebugString() const;
};
std::string DebugString() const;
};
} // namespace lite_api
} // namespace lite_api
} // namespace paddle