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