TTK
Loading...
Searching...
No Matches
ttkDimensionReduction.h
Go to the documentation of this file.
1
54
77
78#pragma once
79
80// VTK Module
81#include <ttkDimensionReductionModule.h>
82
83// TTK includes
84#include <DimensionReduction.h>
85#include <TopoMap.h>
87#include <ttkAlgorithm.h>
88#include <ttkMacros.h>
89
90class TTKDIMENSIONREDUCTION_EXPORT ttkDimensionReduction
91 : public ttkAlgorithm,
92 protected ttk::DimensionReduction {
93
94public:
97
98 void SetScalarFields(const std::string &s) {
99 ScalarFields.push_back(s);
100 Modified();
101 }
102
104 ScalarFields.clear();
105 Modified();
106 }
107
108 // default
109 vtkSetMacro(SelectFieldsWithRegexp, bool);
110 vtkGetMacro(SelectFieldsWithRegexp, bool);
111
112 vtkSetMacro(RegexpString, const std::string &);
113 vtkGetMacro(RegexpString, std::string);
114
115 void SetInitializationFields(const std::string &s) {
116 InitializationFields.push_back(s);
117 Modified();
118 }
119
121 InitializationFields.clear();
122 Modified();
123 }
124
125 vtkSetMacro(SelectInitializationFieldsWithRegexp, bool);
126 vtkGetMacro(SelectInitializationFieldsWithRegexp, bool);
127
128 vtkSetMacro(InitializationRegexpString, const std::string &);
129 vtkGetMacro(InitializationRegexpString, std::string);
130
131 vtkSetMacro(NumberOfComponents, int);
132 vtkGetMacro(NumberOfComponents, int);
133
134 vtkSetMacro(NumberOfNeighbors, int);
135 vtkGetMacro(NumberOfNeighbors, int);
136
137 vtkSetMacro(IsDeterministic, int);
138 vtkGetMacro(IsDeterministic, int);
139
141 vtkGetEnumMacro(Method, METHOD);
142
143 vtkSetMacro(KeepAllDataArrays, bool);
144 vtkGetMacro(KeepAllDataArrays, bool);
145
146 // SE && MDS
147 void SetInputIsADistanceMatrix(const bool b) {
148 this->InputIsADistanceMatrix = b;
150 Modified();
151 }
152 vtkGetMacro(InputIsADistanceMatrix, bool);
153
154 // SE
155 vtkSetMacro(se_Affinity, const std::string &);
156 vtkGetMacro(se_Affinity, std::string);
157
158 vtkSetMacro(se_Gamma, float);
159 vtkGetMacro(se_Gamma, float);
160
161 vtkSetMacro(se_EigenSolver, const std::string &);
162 vtkGetMacro(se_EigenSolver, std::string);
163
164 // LLE
165 vtkSetMacro(lle_Regularization, float);
166 vtkGetMacro(lle_Regularization, float);
167
168 vtkSetMacro(lle_EigenSolver, const std::string &);
169 vtkGetMacro(lle_EigenSolver, std::string);
170
171 vtkSetMacro(lle_Tolerance, float);
172 vtkGetMacro(lle_Tolerance, float);
173
174 vtkSetMacro(lle_MaxIteration, int);
175 vtkGetMacro(lle_MaxIteration, int);
176
177 vtkSetMacro(lle_Method, const std::string &);
178 vtkGetMacro(lle_Method, std::string);
179
180 vtkSetMacro(lle_HessianTolerance, float);
181 vtkGetMacro(lle_HessianTolerance, float);
182
183 vtkSetMacro(lle_ModifiedTolerance, float);
184 vtkGetMacro(lle_ModifiedTolerance, float);
185
186 vtkSetMacro(lle_NeighborsAlgorithm, const std::string &);
187 vtkGetMacro(lle_NeighborsAlgorithm, std::string);
188
189 // MDS
190 vtkSetMacro(mds_Metric, bool);
191 vtkGetMacro(mds_Metric, bool);
192
193 vtkSetMacro(mds_Init, int);
194 vtkGetMacro(mds_Init, int);
195
196 vtkSetMacro(mds_MaxIteration, int);
197 vtkGetMacro(mds_MaxIteration, int);
198
199 vtkSetMacro(mds_Verbose, int);
200 vtkGetMacro(mds_Verbose, int);
201
202 vtkSetMacro(mds_Epsilon, float);
203 vtkGetMacro(mds_Epsilon, float);
204
205 // TSNE
206 vtkSetMacro(tsne_Perplexity, float);
207 vtkGetMacro(tsne_Perplexity, float);
208
209 vtkSetMacro(tsne_Exaggeration, float);
210 vtkGetMacro(tsne_Exaggeration, float);
211
212 vtkSetMacro(tsne_LearningRate, float);
213 vtkGetMacro(tsne_LearningRate, float);
214
215 vtkSetMacro(tsne_MaxIteration, int);
216 vtkGetMacro(tsne_MaxIteration, int);
217
218 vtkSetMacro(tsne_MaxIterationProgress, int);
219 vtkGetMacro(tsne_MaxIterationProgress, int);
220
221 vtkSetMacro(tsne_GradientThreshold, float);
222 vtkGetMacro(tsne_GradientThreshold, float);
223
224 vtkSetMacro(tsne_Metric, const std::string &);
225 vtkGetMacro(tsne_Metric, std::string);
226
227 vtkSetMacro(tsne_Init, const std::string &);
228 vtkGetMacro(tsne_Init, std::string);
229
230 vtkSetMacro(tsne_Verbose, int);
231 vtkGetMacro(tsne_Verbose, int);
232
233 vtkSetMacro(tsne_Method, const std::string &);
234 vtkGetMacro(tsne_Method, std::string);
235
236 vtkSetMacro(tsne_Angle, float);
237 vtkGetMacro(tsne_Angle, float);
238
239 // Iso
240 vtkSetMacro(iso_EigenSolver, const std::string &);
241 vtkGetMacro(iso_EigenSolver, std::string);
242
243 vtkSetMacro(iso_Tolerance, float);
244 vtkGetMacro(iso_Tolerance, float);
245
246 vtkSetMacro(iso_MaxIteration, int);
247 vtkGetMacro(iso_MaxIteration, int);
248
249 vtkSetMacro(iso_PathMethod, const std::string &);
250 vtkGetMacro(iso_PathMethod, std::string);
251
252 vtkSetMacro(iso_NeighborsAlgorithm, const std::string &);
253 vtkGetMacro(iso_NeighborsAlgorithm, std::string);
254
255 vtkSetMacro(iso_Metric, const std::string &);
256 vtkGetMacro(iso_Metric, std::string);
257
258 // PCA
259 vtkSetMacro(pca_Copy, bool);
260 vtkGetMacro(pca_Copy, bool);
261
262 vtkSetMacro(pca_Whiten, bool);
263 vtkGetMacro(pca_Whiten, bool);
264
265 vtkSetMacro(pca_SVDSolver, const std::string &);
266 vtkGetMacro(pca_SVDSolver, std::string);
267
268 vtkSetMacro(pca_Tolerance, float);
269 vtkGetMacro(pca_Tolerance, float);
270
271 vtkSetMacro(pca_MaxIteration, const std::string &);
272 vtkGetMacro(pca_MaxIteration, std::string);
273
274 // TopoMap
275 vtkSetMacro(topomap_AngularSampleNb, unsigned long int);
276 vtkGetMacro(topomap_AngularSampleNb, unsigned long int);
277
278 vtkSetMacro(topomap_CheckMST, bool);
279 vtkGetMacro(topomap_CheckMST, bool);
280
283
284 // AutoEncoder
285 vtkSetMacro(ae_CUDA, bool);
286 vtkGetMacro(ae_CUDA, bool);
287
288 vtkSetMacro(ae_Deterministic, bool);
289 vtkGetMacro(ae_Deterministic, bool);
290
291 vtkSetMacro(ae_Seed, int);
292 vtkGetMacro(ae_Seed, int);
293
294 vtkSetMacro(ae_Epochs, int);
295 vtkGetMacro(ae_Epochs, int);
296
297 vtkSetMacro(ae_LearningRate, double);
298 vtkGetMacro(ae_LearningRate, double);
299
302
305
308
309 vtkSetMacro(ae_Architecture, const std::string &);
310 vtkGetMacro(ae_Architecture, std::string);
311
312 vtkSetMacro(ae_Activation, const std::string &);
313 vtkGetMacro(ae_Activation, std::string);
314
315 vtkSetMacro(ae_BatchSize, int);
316 vtkGetMacro(ae_BatchSize, int);
317
318 vtkSetMacro(ae_BatchNormalization, bool);
319 vtkGetMacro(ae_BatchNormalization, bool);
320
321 vtkSetMacro(ae_RegCoefficient, double);
322 vtkGetMacro(ae_RegCoefficient, double);
323
324 vtkSetMacro(IsInputImages, bool);
325 vtkGetMacro(IsInputImages, bool);
326
327 vtkSetMacro(ae_PreOptimize, bool);
328 vtkGetMacro(ae_PreOptimize, bool);
329
330 vtkSetMacro(ae_PreOptimizeEpochs, int);
331 vtkGetMacro(ae_PreOptimizeEpochs, int);
332
333 // testing
334 vtkSetMacro(ModulePath, const std::string &);
335 vtkGetMacro(ModulePath, std::string);
336
337 vtkSetMacro(ModuleName, const std::string &);
338 vtkGetMacro(ModuleName, std::string);
339
340 vtkSetMacro(FunctionName, const std::string &);
341 vtkGetMacro(FunctionName, std::string);
342
343protected:
345
346 int FillInputPortInformation(int port, vtkInformation *info) override;
347 int FillOutputPortInformation(int port, vtkInformation *info) override;
348 int RequestData(vtkInformation *request,
349 vtkInformationVector **inputVector,
350 vtkInformationVector *outputVector) override;
351
352private:
353 // default
354 bool SelectFieldsWithRegexp{false};
355 std::string RegexpString{".*"};
356 std::vector<std::string> ScalarFields{};
357
358 bool SelectInitializationFieldsWithRegexp{false};
359 std::string InitializationRegexpString{".*"};
360 std::vector<std::string> InitializationFields{};
361
362 bool KeepAllDataArrays{true};
363
364 // mds && se
365 bool InputIsADistanceMatrix{false};
366
367 std::vector<std::vector<double>> outputData_{};
368};
virtual int RequestData(vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector))
int FillInputPortInformation(int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override
int FillOutputPortInformation(int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override
void SetInitializationFields(const std::string &s)
static ttkDimensionReduction * New()
void SetScalarFields(const std::string &s)
void SetInputIsADistanceMatrix(const bool b)
TTK VTK-filter that apply dimension reduction algorithms on input.
TopologicalDimensionReduction::REGUL ae_Method
TopologicalDimensionReduction::OPTIMIZER ae_Optimizer
TopoMap::STRATEGY topomap_Strategy
void setIsInputDistanceMatrix(const bool data)
TopologicalDimensionReduction::MODEL ae_Model
#define ttkSetEnumMacro(name, enumType)
Definition ttkMacros.h:38