FLImaging 6.10.14.2
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 };
32
33 enum EValueAttribute
34 {
35 EValueAttribute_None = 0,
36 EValueAttribute_Constant,
37 EValueAttribute_Variable,
38 EValueAttribute_Input,
39 };
40
41 enum ENodeOperator
42 {
43 ENodeOperator_None = 0,
44
45 ENodeOperator_Placeholder,
46 ENodeOperator_Augmentation,
47
48 ENodeOperator_Add,
49 ENodeOperator_Subtract,
50 ENodeOperator_Multiply,
51 ENodeOperator_MatMul,
52 ENodeOperator_Dot,
53 ENodeOperator_Divide,
54 ENodeOperator_Affine,
55 ENodeOperator_Pow,
56
57 ENodeOperator_Conv2D,
58 ENodeOperator_AvgPool2D,
59 ENodeOperator_MaxPool2D,
60 ENodeOperator_MinPool2D,
61 ENodeOperator_TransConv2D,
62 ENodeOperator_AtrousConv2D,
63 ENodeOperator_TransAtrousConv2D,
64 ENodeOperator_BatchNorm1D,
65 ENodeOperator_BatchNorm2D,
66
67 ENodeOperator_Sqrt,
68 ENodeOperator_Square,
69
70 ENodeOperator_Log,
71 ENodeOperator_Exp,
72 ENodeOperator_Tanh,
73 ENodeOperator_GELU,
74 ENodeOperator_Sigmoid,
75 ENodeOperator_SiLU,
76 ENodeOperator_ReLU,
77 ENodeOperator_LeakyReLU,
78 ENodeOperator_Softmax,
79 ENodeOperator_LogSoftmax,
80 ENodeOperator_SoftmaxWithCrossEntropy,
81 ENodeOperator_Softsign,
82 ENodeOperator_SELU,
83 ENodeOperator_CELU,
84 ENodeOperator_ELU,
85
86 ENodeOperator_Transpose,
87 ENodeOperator_Flatten,
88 ENodeOperator_Upsample,
89
90 ENodeOperator_ReduceSum,
91 ENodeOperator_ReduceMean,
92 ENodeOperator_ReduceMin,
93 ENodeOperator_ReduceMax,
94 ENodeOperator_ReduceVar,
95 ENodeOperator_ReduceStdev,
96
97 ENodeOperator_Dropout,
98 ENodeOperator_Linear,
99 ENodeOperator_Softplus,
100 ENodeOperator_Mish,
101 ENodeOperator_MaxOut,
102
103 ENodeOperator_Route,
104 ENodeOperator_Shortcut,
105 ENodeOperator_ObjectDetection,
106 ENodeOperator_ObjectDetectionProcessor,
107 ENodeOperator_Label,
108 ENodeOperator_Crop,
109
110 ENodeOperator_Maximum,
111 ENodeOperator_Minimum,
112
113 ENodeOperator_CustomObjectDetectionConvWithBatchNorm2D,
114 ENodeOperator_Concatenate,
115 ENodeOperator_ArgMax,
116 ENodeOperator_ArgMin,
117 ENodeOperator_BinCount,
118 ENodeOperator_Reshape,
119 ENodeOperator_Split2D,
120 ENodeOperator_Absolute,
121 ENodeOperator_CorrelationCoefficient,
122
123 ENodeOperator_Close2D,
124 ENodeOperator_Open2D,
125 ENodeOperator_Dilate2D,
126 ENodeOperator_Erode2D,
127
128 ENodeOperator_Ceil,
129 ENodeOperator_Floor,
130 ENodeOperator_Clip,
131 ENodeOperator_ArgSort,
132 ENodeOperator_LinSpace,
133 ENodeOperator_Product,
134 ENodeOperator_Diff,
135 ENodeOperator_Where,
136 ENodeOperator_RegionProposalNetwork,
137 ENodeOperator_MaskRCNNHead,
138 ENodeOperator_Sort,
139 ENodeOperator_TopK,
140 ENodeOperator_Random,
141 ENodeOperator_Gather,
142 ENodeOperator_SmoothL1Loss,
143 ENodeOperator_Log1p,
144 ENodeOperator_BCEWithLogistLoss,
145 ENodeOperator_ArcCos,
146 ENodeOperator_ArcTan2,
147 ENodeOperator_Sin,
148 ENodeOperator_Cos,
149 ENodeOperator_Degrees,
150 ENodeOperator_LayerNorm,
151 ENodeOperator_MultiScaleRoIAlign,
152 ENodeOperator_Threshold,
153 ENodeOperator_MaskRCNNIntermediate,
154 ENodeOperator_MaskRCNN,
155 ENodeOperator_GroupNorm,
156 ENodeOperator_Norm,
157 ENodeOperator_ConditionalConcatenate,
158 ENodeOperator_BCELoss,
159 ENodeOperator_CustomAnomalyDetectionMinMaxDiff,
160 ENodeOperator_PixelShuffle,
161 ENodeOperator_CustomAnomalyDetectionPool2D,
162 ENodeOperator_MedianPool2D,
163 ENodeOperator_RNN,
164 ENodeOperator_LSTM,
165 ENodeOperator_CTCLoss,
166 ENodeOperator_SSIM,
167 ENodeOperator_ObjectDetectionProcessorRFLNet,
168 ENodeOperator_CustomSuperResolutionUpsample,
169 ENodeOperator_Log10,
170 ENodeOperator_MSELoss,
171 ENodeOperator_CustomAnomalyDetectionMinMaxDiffInference,
172 ENodeOperator_PixelUnshuffle,
173 ENodeOperator_RReLU,
174 ENodeOperator_LabelForOCR,
175 ENodeOperator_ObjectDetectionProcessorRFLNetWithAngle,
176 ENodeOperator_AngleLoss,
177 ENodeOperator_Unfold,
178 ENodeOperator_Fold,
179 ENodeOperator_Chunk,
180 ENodeOperator_GramMatrix,
181 ENodeOperator_CustomAnomalyDetectionGradient,
182 ENodeOperator_AdaptiveAvgPool2D,
183 ENodeOperator_Involution,
184 ENodeOperator_FractionalMaxPool2D,
185 ENodeOperator_GlobalMaxPool2D,
186 ENodeOperator_GlobalMinPool2D,
187 };
188
189 enum EActivationFunction
190 {
191 EActivationFunction_Sigmoid = 0,
192 EActivationFunction_Tanh,
193 EActivationFunction_ReLU,
194 EActivationFunction_ELU,
195 EActivationFunction_SiLU
196 };
197
198 enum EPooling
199 {
200 EPooling_Max = 0,
201 EPooling_Avg
202 };
203
204 enum ESoftmaxAlgorithm
205 {
206 ESoftmaxAlgorithm_Normal = 0,
207 ESoftmaxAlgorithm_Log
208 };
209
210 enum EResizeMethod
211 {
212 EResizeMethod_ScaleAllAxises = 0,
213 EResizeMethod_ScaleMaxAxis,
214 EResizeMethod_ScaleMinAxis,
215 EResizeMethod_CropCenter,
216 EResizeMethod_CropLeftTop,
217 };
218
219 enum ELabelMethod
220 {
221 ELabelMethod_Segmentation = 0,
222 ELabelMethod_Classifier,
223 ELabelMethod_AnomalyDetection,
224 ELabelMethod_SuperResolution,
225 ELabelMethod_StringBasedOCR,
226 ELabelMethod_GAN,
227 };
228
229 enum EIoU
230 {
231 EIoU_IoU = 0,
232 EIoU_GIoU,
233 EIoU_MSE,
234 EIoU_DIoU,
235 EIoU_CIoU,
236 };
237
238 enum ENonMaximumSuppressionType
239 {
240 ENonMaximumSuppressionType_None = 0,
241 ENonMaximumSuppressionType_Greedy,
242 ENonMaximumSuppressionType_DIoU,
243 ENonMaximumSuppressionType_Corners,
244 };
245
246 enum EInternalOptimizerType
247 {
248 EInternalOptimizerType_GradientDescent = 0,
249 EInternalOptimizerType_StochasticGradientDescent,
250 EInternalOptimizerType_MomentumGradientDescent,
251 EInternalOptimizerType_AdaGradientDescent,
252 EInternalOptimizerType_RMSPropGradientDescent,
253 EInternalOptimizerType_AdamGradientDescent,
254 EInternalOptimizerType_AdaBeliefGradientDescent,
255 };
256
257 enum ELearningRateSchedulerMode
258 {
259 ELearningRateSchedulerMode_Epoch = 0,
260 ELearningRateSchedulerMode_Iteration,
261 };
262
263 enum ENormOrder
264 {
265 ENormOrder_Frobenius = 0,
266 ENormOrder_Nuclear,
267 ENormOrder_Infinite,
268 ENormOrder_MinusInfinite,
269 };
270
271 enum EReductionType : int32_t
272 {
273 EReductionType_Mean = 0,
274 EReductionType_Sum,
275 EReductionType_None,
276 };
277 enum EUniqueResultSettings
278 {
279 EUniqueResultSettings_None = 0x0,
280 EUniqueResultSettings_Index = 0x1,
281 EUniqueResultSettings_Inverse = 0x2,
282 EUniqueResultSettings_Counts = 0x4,
283 EUniqueResultSettings_Index_Inverse = EUniqueResultSettings_Index | EUniqueResultSettings_Inverse,
284 EUniqueResultSettings_Index_Counts = EUniqueResultSettings_Index | EUniqueResultSettings_Counts,
285 EUniqueResultSettings_Inverse_Counts = EUniqueResultSettings_Inverse | EUniqueResultSettings_Counts,
286 EUniqueResultSettings_Index_Inverse_Counts = EUniqueResultSettings_Index_Inverse | EUniqueResultSettings_Counts,
287 };
288
289 enum ENonlinearlity
290 {
291 ENonlinearlity_Tanh = 0,
292 ENonlinearlity_Relu,
293 };
294
295 enum EAlignMode
296 {
297 EAlignMode_Left = 0,
298 EAlignMode_Center,
299 EAlignMode_Right,
300 };
301
307 {
308
314
320 };
321
322 const int32_t g_i32MinimumChunkSizeOfMultiThreading = 1024;
323 }
324}
325
326#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:307
@ EBlankColorMethod_InpaintingFMM
Definition DefinitionsAI.h:319
@ EBlankColorMethod_ZeroPadding
Definition DefinitionsAI.h:313
Definition AbsoluteThreshold.h:25