TTK
Loading...
Searching...
No Matches
ttkMergeTreeNeuralNetworkUtils.h
Go to the documentation of this file.
1
7
8#pragma once
9
10#include <MergeTreeTorchUtils.h>
12#include <ttkUtils.h>
13
14#include <vtkMultiBlockDataSet.h>
15
16#ifdef TTK_ENABLE_TORCH
17namespace ttk {
18 namespace wnn {
19
20 void makeMatchingVectors(
21 std::vector<std::vector<std::tuple<ftm::idNode, ftm::idNode, double>>>
22 &originsMatchings,
23 std::vector<mtu::TorchMergeTree<float>> &originsCopy,
24 std::vector<mtu::TorchMergeTree<float>> &originsPrimeCopy,
25 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVectorT,
26 std::vector<std::vector<ttk::ftm::idNode>> &invOriginsMatchingVectorT,
27 std::vector<
28 std::vector<std::vector<std::tuple<ftm::idNode, ftm::idNode, double>>>>
29 &dataMatchings,
30 std::vector<std::vector<mtu::TorchMergeTree<float>>> &recs,
31 std::vector<std::vector<std::vector<ttk::ftm::idNode>>>
32 &invDataMatchingVectorT,
33 std::vector<std::vector<std::tuple<ftm::idNode, ftm::idNode, double>>>
34 &reconstMatchings,
35 std::vector<std::vector<ttk::ftm::idNode>> &invReconstMatchingVectorT);
36
37 void makeDataOutput(
38 vtkMultiBlockDataSet *output_data,
39 std::vector<std::vector<mtu::TorchMergeTree<float>>> &recs,
40 unsigned int recSize,
41 std::vector<vtkDataSet *> &treesSegmentation,
42 std::vector<std::vector<double>> &persCorrelationMatrix,
43 std::vector<std::vector<std::vector<ttk::ftm::idNode>>>
44 &invDataMatchingVectorT,
45 std::vector<std::vector<ttk::ftm::idNode>> &invReconstMatchingVectorT,
46 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVectorT,
47 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVector,
48 std::vector<std::vector<double>> &originsPersPercent,
49 std::vector<std::vector<double>> &originsPersDiff,
50 std::vector<int> &originPersistenceOrder,
51 std::vector<vtkUnstructuredGrid *> &treesNodes,
52 std::vector<std::vector<int>> &treesNodeCorr,
53 std::vector<unsigned int> classId,
54 float bestLoss,
55 double mixtureCoefficient,
56 bool isPersistenceDiagram,
57 bool convertToDiagram,
58 int debugLevel);
59
60 void makeDataOutput(
61 vtkMultiBlockDataSet *output_data,
62 std::vector<std::vector<mtu::TorchMergeTree<float>>> &recs,
63 unsigned int recSize,
64 std::vector<vtkDataSet *> &treesSegmentation,
65 std::vector<std::vector<double>> &persCorrelationMatrix,
66 std::vector<std::vector<std::vector<ttk::ftm::idNode>>>
67 &invDataMatchingVectorT,
68 std::vector<std::vector<ttk::ftm::idNode>> &invReconstMatchingVectorT,
69 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVectorT,
70 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVector,
71 std::vector<std::vector<double>> &originsPersPercent,
72 std::vector<std::vector<double>> &originsPersDiff,
73 std::vector<int> &originPersistenceOrder,
74 std::vector<vtkUnstructuredGrid *> &treesNodes,
75 std::vector<std::vector<int>> &treesNodeCorr,
76 float bestLoss,
77 double mixtureCoefficient,
78 bool isPersistenceDiagram,
79 bool convertToDiagram,
80 int debugLevel);
81
82 void makeOriginsOutput(
83 vtkMultiBlockDataSet *output_origins,
84 std::vector<mtu::TorchMergeTree<float>> &originsCopy,
85 std::vector<mtu::TorchMergeTree<float>> &originsPrimeCopy,
86 std::vector<double> &originPersPercent,
87 std::vector<double> &originPersDiff,
88 std::vector<int> &originPersistenceOrder,
89 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVector,
90 std::vector<std::vector<double>> &originsPersPercent,
91 std::vector<std::vector<double>> &originsPersDiff,
92 double mixtureCoefficient,
93 bool isPersistenceDiagram,
94 bool convertToDiagram,
95 int debugLevel);
96
97 void makeCoefficientsOutput(
98 vtkMultiBlockDataSet *output_coef,
99 std::vector<std::vector<torch::Tensor>> &allAlphas,
100 std::vector<std::vector<torch::Tensor>> &allScaledAlphas,
101 std::vector<std::vector<torch::Tensor>> &allActAlphas,
102 std::vector<std::vector<torch::Tensor>> &allActScaledAlphas,
103 std::vector<unsigned int> &clusterAsgn,
104 std::vector<std::vector<mtu::TorchMergeTree<float>>> &recs,
105 std::vector<vtkSmartPointer<vtkMultiBlockDataSet>> &inputTrees);
106
129 void makeOneOutput(
131 vtkUnstructuredGrid *treeNodes,
132 std::vector<int> &treeNodeCorr,
133 vtkDataSet *treeSegmentation,
136 vtkSmartPointer<vtkDataSet> &vtkOutputSegmentation,
137 unsigned int treeID,
138 std::vector<std::tuple<std::string, std::vector<int>>> &customIntArrays,
139 std::vector<std::tuple<std::string, std::vector<double>>>
140 &customDoubleArrays,
141 bool outputSegmentation,
142 double mixtureCoefficient,
143 bool isPersistenceDiagram,
144 bool convertToDiagram,
145 int debugLevel);
146
165 void makeManyOutput(
166 std::vector<ttk::ftm::MergeTree<float> *> &trees,
167 std::vector<vtkUnstructuredGrid *> &treesNodesT,
168 std::vector<std::vector<int>> &treesNodeCorr,
169 std::vector<vtkDataSet *> &treesSegmentationT,
171 std::vector<std::vector<std::tuple<std::string, std::vector<int>>>>
172 &customIntArrays,
173 std::vector<std::vector<std::tuple<std::string, std::vector<double>>>>
174 &customDoubleArrays,
175 double mixtureCoefficient,
176 bool isPersistenceDiagram,
177 bool convertToDiagram,
178 int debugLevel);
179
197 void makeManyOutput(
198 std::vector<ttk::ftm::MergeTree<float> *> &trees,
199 std::vector<vtkUnstructuredGrid *> &treesNodesT,
200 std::vector<std::vector<int>> &treesNodeCorr,
202 std::vector<std::vector<std::tuple<std::string, std::vector<int>>>>
203 &customIntArrays,
204 std::vector<std::vector<std::tuple<std::string, std::vector<double>>>>
205 &customDoubleArrays,
206 double mixtureCoefficient,
207 bool isPersistenceDiagram,
208 bool convertToDiagram,
209 int debugLevel);
210
225 void makeManyOutput(
226 std::vector<ttk::ftm::MergeTree<float> *> &trees,
228 std::vector<std::vector<std::tuple<std::string, std::vector<int>>>>
229 &customIntArrays,
230 std::vector<std::vector<std::tuple<std::string, std::vector<double>>>>
231 &customDoubleArrays,
232 double mixtureCoefficient,
233 bool isPersistenceDiagram,
234 bool convertToDiagram,
235 int debugLevel);
236
249 void makeManyOutput(std::vector<ttk::ftm::MergeTree<float> *> &trees,
251 double mixtureCoefficient,
252 bool isPersistenceDiagram,
253 bool convertToDiagram,
254 int debugLevel);
255
284 void computeTrackingInformation(
285 std::vector<mtu::TorchMergeTree<float>> &origins,
286 std::vector<mtu::TorchMergeTree<float>> &originsPrime,
287 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVectorT,
288 std::vector<std::vector<ttk::ftm::idNode>> &invOriginsMatchingVectorT,
289 bool isPersistenceDiagram,
290 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVector,
291 std::vector<std::vector<double>> &originsPersPercent,
292 std::vector<std::vector<double>> &originsPersDiff,
293 std::vector<double> &originPersPercent,
294 std::vector<double> &originPersDiff,
295 std::vector<int> &originPersistenceOrder);
296
323 void computeCustomArrays(
324 std::vector<std::vector<mtu::TorchMergeTree<float>>> &recs,
325 std::vector<std::vector<double>> &persCorrelationMatrix,
326 std::vector<std::vector<std::vector<ttk::ftm::idNode>>>
327 &invDataMatchingVectorT,
328 std::vector<std::vector<ttk::ftm::idNode>> &invReconstMatchingVectorT,
329 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVector,
330 std::vector<std::vector<ttk::ftm::idNode>> &originsMatchingVectorT,
331 std::vector<std::vector<double>> &originsPersPercent,
332 std::vector<std::vector<double>> &originPersDiff,
333 std::vector<int> &originPersistenceOrder,
334 unsigned int l,
335 unsigned int lShift,
336 std::vector<std::vector<std::tuple<std::string, std::vector<int>>>>
337 &customIntArrays,
338 std::vector<std::vector<std::tuple<std::string, std::vector<double>>>>
339 &customDoubleArrays);
340 } // namespace wnn
341} // namespace ttk
342#endif
TTK base package defining the standard types.