mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-10-06 17:17:14 +08:00
Add softmax function (#93)
* Add softmax function * Add softmax unittest * Add Softmax docs * Add function directory * Add comment for FD_VISIT_ALL_TYPES macro
This commit is contained in:
@@ -103,36 +103,40 @@ FASTDEPLOY_DECL bool ReadBinaryFromFile(const std::string& file,
|
||||
#define FD_PRIVATE_CASE_TYPE(NAME, enum_type, type, ...) \
|
||||
FD_PRIVATE_CASE_TYPE_USING_HINT(NAME, enum_type, type, data_t, __VA_ARGS__)
|
||||
|
||||
#define FD_VISIT_ALL_TYPES(TYPE, NAME, ...) \
|
||||
[&] { \
|
||||
const auto& __dtype__ = TYPE; \
|
||||
switch (__dtype__) { \
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::BOOL, bool, \
|
||||
__VA_ARGS__) \
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::INT32, int32_t, \
|
||||
__VA_ARGS__) \
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::INT64, int64_t, \
|
||||
__VA_ARGS__) \
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::FP32, float, \
|
||||
__VA_ARGS__) \
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::FP64, double, \
|
||||
__VA_ARGS__) \
|
||||
default: \
|
||||
FDASSERT(false, "Invalid enum data type.") \
|
||||
} \
|
||||
// Visit different data type to match the corresponding function of FDTensor
|
||||
#define FD_VISIT_ALL_TYPES(TYPE, NAME, ...) \
|
||||
[&] { \
|
||||
const auto& __dtype__ = TYPE; \
|
||||
switch (__dtype__) { \
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::BOOL, bool, \
|
||||
__VA_ARGS__) \
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::INT32, int32_t, \
|
||||
__VA_ARGS__) \
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::INT64, int64_t, \
|
||||
__VA_ARGS__) \
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::FP32, float, \
|
||||
__VA_ARGS__) \
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::FP64, double, \
|
||||
__VA_ARGS__) \
|
||||
default: \
|
||||
FDASSERT(false, \
|
||||
"Invalid enum data type. Only accept data type BOOL, INT32, " \
|
||||
"INT64, FP32, FP64.") \
|
||||
} \
|
||||
}()
|
||||
|
||||
#define FD_VISIT_FLOAT_TYPES(TYPE, NAME, ...) \
|
||||
[&] { \
|
||||
const auto& __dtype__ = TYPE; \
|
||||
switch (__dtype__) { \
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::FP32, float, \
|
||||
__VA_ARGS__) \
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::FP64, double, \
|
||||
__VA_ARGS__) \
|
||||
default: \
|
||||
FDASSERT(false, "Invalid enum data type.") \
|
||||
} \
|
||||
#define FD_VISIT_FLOAT_TYPES(TYPE, NAME, ...) \
|
||||
[&] { \
|
||||
const auto& __dtype__ = TYPE; \
|
||||
switch (__dtype__) { \
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::FP32, float, \
|
||||
__VA_ARGS__) \
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::FP64, double, \
|
||||
__VA_ARGS__) \
|
||||
default: \
|
||||
FDASSERT(false, \
|
||||
"Invalid enum data type. Only accept data type FP32, FP64.") \
|
||||
} \
|
||||
}()
|
||||
|
||||
#define FD_VISIT_INT_TYPES(TYPE, NAME, ...) \
|
||||
@@ -144,7 +148,9 @@ FASTDEPLOY_DECL bool ReadBinaryFromFile(const std::string& file,
|
||||
FD_PRIVATE_CASE_TYPE(NAME, ::fastdeploy::FDDataType::INT64, int64_t, \
|
||||
__VA_ARGS__) \
|
||||
default: \
|
||||
FDASSERT(false, "Invalid enum data type.") \
|
||||
FDASSERT( \
|
||||
false, \
|
||||
"Invalid enum data type. Only accept data type INT32, INT64.") \
|
||||
} \
|
||||
}()
|
||||
|
||||
|
Reference in New Issue
Block a user