FLImaging 7.8.25.3
DefinitionsAI.h
1#pragma once
2
3#ifdef _M_X64
4
5#include <stdint.h>
6#include <stddef.h>
7
8#define DeclareGetSignletonObject(x) static x<T>* GetSingletonObject() { static x<T> object; CComputationalGraphUtilities<T>::RegisterComputationalBaseObjects(&object); return &object; }
9
10namespace FLImaging
11{
12 namespace ImageProcessing
13 {
15 }
16
17 namespace AI
18 {
19 enum ENodeType
20 {
21 ENodeType_Base = 0,
22 ENodeType_ComputationalGraph,
23 ENodeType_Tensor,
24 };
25
26 enum EDataType
27 {
28 EDataType_None = 0,
29 EDataType_Float,
30 EDataType_Double,
31 EDataType_Uint8,
32 EDataType_Uint16,
33 };
34
35 enum EValueAttribute
36 {
37 EValueAttribute_None = 0,
38 EValueAttribute_Constant,
39 EValueAttribute_Variable,
40 EValueAttribute_Input,
41 };
42
43 enum ENodeOperator
44 {
45 ENodeOperator_None = 0,
46
47 ENodeOperator_Placeholder,
48 ENodeOperator_Augmentation,
49
50 ENodeOperator_Add,
51 ENodeOperator_Subtract,
52 ENodeOperator_Multiply,
53 ENodeOperator_MatMul,
54 ENodeOperator_Dot,
55 ENodeOperator_Divide,
56 ENodeOperator_Affine,
57 ENodeOperator_Pow,
58
59 ENodeOperator_Conv2D,
60 ENodeOperator_AvgPool2D,
61 ENodeOperator_MaxPool2D,
62 ENodeOperator_MinPool2D,
63 ENodeOperator_TransConv2D,
64 ENodeOperator_AtrousConv2D,
65 ENodeOperator_TransAtrousConv2D,
66 ENodeOperator_BatchNorm1D,
67 ENodeOperator_BatchNorm2D,
68
69 ENodeOperator_Sqrt,
70 ENodeOperator_Square,
71
72 ENodeOperator_Log,
73 ENodeOperator_Exp,
74 ENodeOperator_Tanh,
75 ENodeOperator_GELU,
76 ENodeOperator_Sigmoid,
77 ENodeOperator_SiLU,
78 ENodeOperator_ReLU,
79 ENodeOperator_LeakyReLU,
80 ENodeOperator_Softmax,
81 ENodeOperator_LogSoftmax,
82 ENodeOperator_SoftmaxWithCrossEntropy,
83 ENodeOperator_Softsign,
84 ENodeOperator_SELU,
85 ENodeOperator_CELU,
86 ENodeOperator_ELU,
87
88 ENodeOperator_Transpose,
89 ENodeOperator_Flatten,
90 ENodeOperator_Upsample,
91
92 ENodeOperator_ReduceSum,
93 ENodeOperator_ReduceMean,
94 ENodeOperator_ReduceMin,
95 ENodeOperator_ReduceMax,
96 ENodeOperator_ReduceVar,
97 ENodeOperator_ReduceStdev,
98
99 ENodeOperator_Dropout,
100 ENodeOperator_Linear,
101 ENodeOperator_Softplus,
102 ENodeOperator_Mish,
103 ENodeOperator_MaxOut,
104
105 ENodeOperator_Route,
106 ENodeOperator_Shortcut,
107 ENodeOperator_ObjectDetection,
108 ENodeOperator_ObjectDetectionProcessor,
109 ENodeOperator_Label,
110 ENodeOperator_Crop,
111
112 ENodeOperator_Maximum,
113 ENodeOperator_Minimum,
114
115 ENodeOperator_CustomObjectDetectionConvWithBatchNorm2D,
116 ENodeOperator_Concatenate,
117 ENodeOperator_ArgMax,
118 ENodeOperator_ArgMin,
119 ENodeOperator_BinCount,
120 ENodeOperator_Reshape,
121 ENodeOperator_Split2D,
122 ENodeOperator_Absolute,
123 ENodeOperator_CorrelationCoefficient,
124
125 ENodeOperator_Close2D,
126 ENodeOperator_Open2D,
127 ENodeOperator_Dilate2D,
128 ENodeOperator_Erode2D,
129
130 ENodeOperator_Ceil,
131 ENodeOperator_Floor,
132 ENodeOperator_Clip,
133 ENodeOperator_ArgSort,
134 ENodeOperator_LinSpace,
135 ENodeOperator_Product,
136 ENodeOperator_Diff,
137 ENodeOperator_Where,
138 ENodeOperator_RegionProposalNetwork,
139 ENodeOperator_MaskRCNNHead,
140 ENodeOperator_Sort,
141 ENodeOperator_TopK,
142 ENodeOperator_Random,
143 ENodeOperator_Gather,
144 ENodeOperator_SmoothL1Loss,
145 ENodeOperator_Log1p,
146 ENodeOperator_BCEWithLogistLoss,
147 ENodeOperator_ArcCos,
148 ENodeOperator_ArcTan2,
149 ENodeOperator_Sin,
150 ENodeOperator_Cos,
151 ENodeOperator_Degrees,
152 ENodeOperator_LayerNorm,
153 ENodeOperator_MultiScaleRoIAlign,
154 ENodeOperator_Threshold,
155 ENodeOperator_MaskRCNNIntermediate,
156 ENodeOperator_MaskRCNN,
157 ENodeOperator_GroupNorm,
158 ENodeOperator_Norm,
159 ENodeOperator_ConditionalConcatenate,
160 ENodeOperator_BCELoss,
161 ENodeOperator_CustomAnomalyDetectionMinMaxDiff,
162 ENodeOperator_PixelShuffle,
163 ENodeOperator_CustomAnomalyDetectionPool2D,
164 ENodeOperator_MedianPool2D,
165 ENodeOperator_RNN,
166 ENodeOperator_LSTM,
167 ENodeOperator_CTCLoss,
168 ENodeOperator_SSIM,
169 ENodeOperator_ObjectDetectionProcessorRFLNet,
170 ENodeOperator_CustomSuperResolutionUpsample,
171 ENodeOperator_Log10,
172 ENodeOperator_MSELoss,
173 ENodeOperator_CustomAnomalyDetectionMinMaxDiffInference,
174 ENodeOperator_PixelUnshuffle,
175 ENodeOperator_RReLU,
176 ENodeOperator_LabelForOCR,
177 ENodeOperator_ObjectDetectionProcessorRFLNetWithAngle,
178 ENodeOperator_AngleLoss,
179 ENodeOperator_Unfold,
180 ENodeOperator_Fold,
181 ENodeOperator_Chunk,
182 ENodeOperator_GramMatrix,
183 ENodeOperator_CustomAnomalyDetectionGradient,
184 ENodeOperator_AdaptiveAvgPool2D,
185 ENodeOperator_Involution,
186 ENodeOperator_FractionalMaxPool2D,
187 ENodeOperator_GlobalMaxPool2D,
188 ENodeOperator_GlobalMinPool2D,
189 ENodeOperator_ObjectDetectionProcessorRFLNetOriented,
190 ENodeOperator_CoordConv2D,
191 ENodeOperator_GlobalMedianPool2D,
192 ENodeOperator_Upsample3D,
193 ENodeOperator_CoordTransConv2D,
194 ENodeOperator_PSNR,
195 ENodeOperator_FFT,
196 ENodeOperator_IFFT,
197 ENodeOperator_Dropout2D,
198 ENodeOperator_BallQuery,
199 ENodeOperator_FarthestPointSampling,
200 ENodeOperator_IndexGather,
201 ENodeOperator_FeatureInterpolation,
202 ENodeOperator_PNormDistance,
203 ENodeOperator_Conv3D,
204 ENodeOperator_OneHotEncoded,
205 ENodeOperator_Embedding,
206 ENodeOperator_Rotate90,
207 };
208
209 enum EActivationFunction
210 {
211 EActivationFunction_Sigmoid = 0,
212 EActivationFunction_Tanh,
213 EActivationFunction_ReLU,
214 EActivationFunction_ELU,
215 EActivationFunction_SiLU
216 };
217
218 enum EPooling
219 {
220 EPooling_Max = 0,
221 EPooling_Avg
222 };
223
224 enum ESoftmaxAlgorithm
225 {
226 ESoftmaxAlgorithm_Normal = 0,
227 ESoftmaxAlgorithm_Log
228 };
229
230 enum EResizeMethod
231 {
232 EResizeMethod_ScaleAllAxises = 0,
233 EResizeMethod_ScaleMaxAxis,
234 EResizeMethod_ScaleMinAxis,
235 EResizeMethod_CropCenter,
236 EResizeMethod_CropLeftTop,
237 };
238
239 enum ELabelMethod
240 {
241 ELabelMethod_Segmentation = 0,
242 ELabelMethod_Classifier,
243 ELabelMethod_AnomalyDetection,
244 ELabelMethod_SuperResolution,
245 ELabelMethod_StringBasedOCR,
246 ELabelMethod_GAN,
247 ELabelMethod_GAN_Label,
248 };
249
250 enum EIoU
251 {
252 EIoU_IoU = 0,
253 EIoU_GIoU,
254 EIoU_MSE,
255 EIoU_DIoU,
256 EIoU_CIoU,
257 };
258
259 enum ENonMaximumSuppressionType
260 {
261 ENonMaximumSuppressionType_None = 0,
262 ENonMaximumSuppressionType_Greedy,
263 ENonMaximumSuppressionType_DIoU,
264 ENonMaximumSuppressionType_Corners,
265 };
266
267 enum EInternalOptimizerType
268 {
269 EInternalOptimizerType_GradientDescent = 0,
270 EInternalOptimizerType_StochasticGradientDescent,
271 EInternalOptimizerType_MomentumGradientDescent,
272 EInternalOptimizerType_AdaGradientDescent,
273 EInternalOptimizerType_RMSPropGradientDescent,
274 EInternalOptimizerType_AdamGradientDescent,
275 EInternalOptimizerType_AdaBeliefGradientDescent,
276 EInternalOptimizerType_AdamWGradientDescent,
277 EInternalOptimizerType_LionGradientDescent,
278 };
279
280 enum ELearningRateSchedulerMode
281 {
282 ELearningRateSchedulerMode_Epoch = 0,
283 ELearningRateSchedulerMode_Iteration,
284 };
285
286 enum ENormOrder
287 {
288 ENormOrder_Frobenius = 0,
289 ENormOrder_Nuclear,
290 ENormOrder_Infinite,
291 ENormOrder_MinusInfinite,
292 };
293
294 enum EReductionType : int32_t
295 {
296 EReductionType_Mean = 0,
297 EReductionType_Sum,
298 EReductionType_None,
299 };
300 enum EUniqueResultSettings
301 {
302 EUniqueResultSettings_None = 0x0,
303 EUniqueResultSettings_Index = 0x1,
304 EUniqueResultSettings_Inverse = 0x2,
305 EUniqueResultSettings_Counts = 0x4,
306 EUniqueResultSettings_Index_Inverse = EUniqueResultSettings_Index | EUniqueResultSettings_Inverse,
307 EUniqueResultSettings_Index_Counts = EUniqueResultSettings_Index | EUniqueResultSettings_Counts,
308 EUniqueResultSettings_Inverse_Counts = EUniqueResultSettings_Inverse | EUniqueResultSettings_Counts,
309 EUniqueResultSettings_Index_Inverse_Counts = EUniqueResultSettings_Index_Inverse | EUniqueResultSettings_Counts,
310 };
311
312 enum ENonlinearlity
313 {
314 ENonlinearlity_Tanh = 0,
315 ENonlinearlity_Relu,
316 };
317
318 enum EAlignMode
319 {
320 EAlignMode_Left = 0,
321 EAlignMode_Center,
322 EAlignMode_Right,
323 };
324
325 enum ENormFFT
326 {
327 ENormFFT_None = 0,
328 ENormFFT_Forward,
329 ENormFFT_Backward,
330 ENormFFT_Ortho,
331 };
332
338 {
339
345
351 };
352
353 const int32_t g_i32MinimumChunkSizeOfMultiThreading = 1024;
354 }
355}
356
357#endif
A pseudo random number generator A 32/64bit PRNG based on Xoroshiro64** /Xoroshiro128++ methods.
Definition XorshiroRandomGenerator.h:24
Definition AlgorithmAIBase.h:18
EBlankColorMethod
Definition DefinitionsAI.h:338
@ EBlankColorMethod_InpaintingFMM
Definition DefinitionsAI.h:350
@ EBlankColorMethod_ZeroPadding
Definition DefinitionsAI.h:344
Definition AbsoluteThreshold.h:25