https://mooseframework.inl.gov
Functions
TestStandardizer.C File Reference

Go to the source code of this file.

Functions

 TEST (StochasticTools, getMean)
 
 TEST (StochasticTools, getStandardized)
 
 TEST (StochasticTools, getDestandardized)
 
 TEST (StochasticTools, getDescaled)
 
 TEST (StochasticTools, getScaled)
 
 TEST (StochasticTools, tensorDataStoreLoad)
 
 TEST (StochasticTools, tensorScalarDataStoreLoad)
 
 TEST (StochasticTools, tensorVectorDataStoreLoad)
 
 TEST (StochasticTools, tensorDataStoreLoadNonContiguous)
 
 TEST (StochasticTools, standardizerDataStoreLoad)
 

Function Documentation

◆ TEST() [1/10]

TEST ( StochasticTools  ,
getMean   
)

Definition at line 11 of file TestStandardizer.C.

12 {
13  const std::vector<double> mean_gold = {0.0, -1.0};
14  const std::vector<double> stddev_gold = {1.0, 0.0};
15 
16  torch::Tensor input_tensor = torch::tensor(
17  {{1.0, -1.0}, {-1.0, -1.0}, {1.0, -1.0}, {-1.0, -1.0}, {1.0, -1.0}, {-1.0, -1.0}},
18  {torch::kFloat64});
19 
20  StochasticTools::Standardizer standardizer;
21  standardizer.computeSet(input_tensor);
22 
23  const auto mean = standardizer.getMean();
24  const auto stddev = standardizer.getStdDev();
25 
26  ASSERT_EQ(mean.dim(), 1);
27  ASSERT_EQ(stddev.dim(), 1);
28  ASSERT_EQ(static_cast<std::size_t>(mean.size(0)), mean_gold.size());
29  ASSERT_EQ(static_cast<std::size_t>(stddev.size(0)), stddev_gold.size());
30 
31  const auto mean_accessor = mean.accessor<Real, 1>();
32  const auto stddev_accessor = stddev.accessor<Real, 1>();
33  for (std::size_t i = 0; i < mean_gold.size(); ++i)
34  EXPECT_EQ(mean_accessor[i], mean_gold[i]);
35  for (std::size_t i = 0; i < stddev_gold.size(); ++i)
36  EXPECT_EQ(stddev_accessor[i], stddev_gold[i]);
37 }
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Class for standardizing data (centering and scaling)
Definition: Standardizer.h:24
void computeSet(const torch::Tensor &input)
Methods for computing and setting mean and standard deviation.
Definition: Standardizer.C:79

◆ TEST() [2/10]

TEST ( StochasticTools  ,
getStandardized   
)

Definition at line 39 of file TestStandardizer.C.

40 {
41  torch::Tensor input_tensor = torch::tensor({{1.0, -1.0}, {-1.0, 1.0}}, {torch::kFloat64});
42  const auto gold = torch::tensor({{1.0, -1.0}, {-1.0, 1.0}}, {torch::kFloat64});
43 
44  StochasticTools::Standardizer standardizer;
45  standardizer.computeSet(input_tensor);
46  standardizer.getStandardized(input_tensor);
47 
48  EXPECT_TRUE(torch::allclose(input_tensor, gold));
49 }
Class for standardizing data (centering and scaling)
Definition: Standardizer.h:24
void computeSet(const torch::Tensor &input)
Methods for computing and setting mean and standard deviation.
Definition: Standardizer.C:79

◆ TEST() [3/10]

TEST ( StochasticTools  ,
getDestandardized   
)

Definition at line 51 of file TestStandardizer.C.

52 {
53  torch::Tensor input_tensor = torch::tensor({{1.0, -1.0}, {-1.0, 1.0}}, {torch::kFloat64});
54  const auto gold = torch::tensor({{1.0, -1.0}, {-1.0, 1.0}}, {torch::kFloat64});
55 
56  StochasticTools::Standardizer standardizer;
57  standardizer.computeSet(input_tensor);
58  standardizer.getStandardized(input_tensor);
59  standardizer.getDestandardized(input_tensor);
60 
61  EXPECT_TRUE(torch::allclose(input_tensor, gold));
62 }
Class for standardizing data (centering and scaling)
Definition: Standardizer.h:24
void computeSet(const torch::Tensor &input)
Methods for computing and setting mean and standard deviation.
Definition: Standardizer.C:79

◆ TEST() [4/10]

TEST ( StochasticTools  ,
getDescaled   
)

Definition at line 64 of file TestStandardizer.C.

65 {
66  torch::Tensor input_tensor = torch::tensor({{1.0, -1.0}, {1.0, 1.0}}, {torch::kFloat64});
67  const auto gold = torch::tensor({{0.0, -1.0}, {0.0, 1.0}}, {torch::kFloat64});
68 
69  StochasticTools::Standardizer standardizer;
70  standardizer.computeSet(input_tensor);
71  standardizer.getDescaled(input_tensor);
72 
73  EXPECT_TRUE(torch::allclose(input_tensor, gold));
74 }
Class for standardizing data (centering and scaling)
Definition: Standardizer.h:24
void computeSet(const torch::Tensor &input)
Methods for computing and setting mean and standard deviation.
Definition: Standardizer.C:79

◆ TEST() [5/10]

TEST ( StochasticTools  ,
getScaled   
)

Definition at line 76 of file TestStandardizer.C.

77 {
78  torch::Tensor input_tensor = torch::tensor({{4.0, -8.0}, {-4.0, 8.0}}, {torch::kFloat64});
79  const auto reference = torch::tensor({{2.0, -4.0}, {-2.0, 4.0}}, {torch::kFloat64});
80  const auto gold = torch::tensor({{2.0, -2.0}, {-2.0, 2.0}}, {torch::kFloat64});
81 
82  StochasticTools::Standardizer standardizer;
83  standardizer.computeSet(reference);
84  standardizer.getScaled(input_tensor);
85 
86  EXPECT_TRUE(torch::allclose(input_tensor, gold));
87 }
Class for standardizing data (centering and scaling)
Definition: Standardizer.h:24
void computeSet(const torch::Tensor &input)
Methods for computing and setting mean and standard deviation.
Definition: Standardizer.C:79

◆ TEST() [6/10]

TEST ( StochasticTools  ,
tensorDataStoreLoad   
)

Definition at line 89 of file TestStandardizer.C.

90 {
91  torch::Tensor stored = torch::tensor({{1.0, 2.0, 3.0}, {-4.0, -5.0, -6.0}}, {torch::kFloat64});
92 
93  std::stringbuf buffer;
94  std::iostream stream(&buffer);
95  dataStore(stream, stored, nullptr);
96 
97  torch::Tensor loaded;
98  dataLoad(stream, loaded, nullptr);
99 
100  ASSERT_EQ(loaded.size(0), stored.size(0));
101  ASSERT_EQ(loaded.size(1), stored.size(1));
102  EXPECT_TRUE(torch::allclose(loaded, stored));
103 }
void dataStore(std::ostream &stream, FaceCenteredMapFunctor< T, Map > &m, void *context)
void dataLoad(std::istream &stream, FaceCenteredMapFunctor< T, Map > &m, void *context)

◆ TEST() [7/10]

TEST ( StochasticTools  ,
tensorScalarDataStoreLoad   
)

Definition at line 105 of file TestStandardizer.C.

106 {
107  torch::Tensor stored = torch::tensor(3.25, {torch::kFloat64});
108 
109  std::stringbuf buffer;
110  std::iostream stream(&buffer);
111  dataStore(stream, stored, nullptr);
112 
113  torch::Tensor loaded;
114  dataLoad(stream, loaded, nullptr);
115 
116  ASSERT_EQ(loaded.dim(), stored.dim());
117  EXPECT_TRUE(torch::allclose(loaded, stored));
118 }
void dataStore(std::ostream &stream, FaceCenteredMapFunctor< T, Map > &m, void *context)
void dataLoad(std::istream &stream, FaceCenteredMapFunctor< T, Map > &m, void *context)

◆ TEST() [8/10]

TEST ( StochasticTools  ,
tensorVectorDataStoreLoad   
)

Definition at line 120 of file TestStandardizer.C.

121 {
122  torch::Tensor stored = torch::tensor({1.0, -2.0, 3.5, 7.0}, {torch::kFloat64});
123 
124  std::stringbuf buffer;
125  std::iostream stream(&buffer);
126  dataStore(stream, stored, nullptr);
127 
128  torch::Tensor loaded;
129  dataLoad(stream, loaded, nullptr);
130 
131  ASSERT_EQ(loaded.dim(), stored.dim());
132  ASSERT_EQ(loaded.size(0), stored.size(0));
133  EXPECT_TRUE(torch::allclose(loaded, stored));
134 }
void dataStore(std::ostream &stream, FaceCenteredMapFunctor< T, Map > &m, void *context)
void dataLoad(std::istream &stream, FaceCenteredMapFunctor< T, Map > &m, void *context)

◆ TEST() [9/10]

TEST ( StochasticTools  ,
tensorDataStoreLoadNonContiguous   
)

Definition at line 136 of file TestStandardizer.C.

137 {
138  const torch::Tensor base =
139  torch::tensor({{1.0, 2.0, 3.0}, {-4.0, -5.0, -6.0}}, {torch::kFloat64});
140  torch::Tensor stored = torch::transpose(base, 0, 1);
141 
142  ASSERT_FALSE(stored.is_contiguous());
143 
144  std::stringbuf buffer;
145  std::iostream stream(&buffer);
146  dataStore(stream, stored, nullptr);
147 
148  torch::Tensor loaded;
149  dataLoad(stream, loaded, nullptr);
150 
151  ASSERT_EQ(loaded.size(0), stored.size(0));
152  ASSERT_EQ(loaded.size(1), stored.size(1));
153  EXPECT_TRUE(torch::allclose(loaded, stored));
154 }
void dataStore(std::ostream &stream, FaceCenteredMapFunctor< T, Map > &m, void *context)
void dataLoad(std::istream &stream, FaceCenteredMapFunctor< T, Map > &m, void *context)

◆ TEST() [10/10]

TEST ( StochasticTools  ,
standardizerDataStoreLoad   
)

Definition at line 156 of file TestStandardizer.C.

157 {
158  torch::Tensor input_tensor =
159  torch::tensor({{3.0, 1.0}, {5.0, -1.0}, {7.0, 3.0}}, {torch::kFloat64});
160 
162  stored.computeSet(input_tensor);
163 
164  std::stringbuf buffer;
165  std::iostream stream(&buffer);
166  dataStore(stream, stored, nullptr);
167 
169  dataLoad(stream, loaded, nullptr);
170 
171  EXPECT_TRUE(torch::allclose(loaded.getMean(), stored.getMean()));
172  EXPECT_TRUE(torch::allclose(loaded.getStdDev(), stored.getStdDev()));
173 }
const torch::Tensor & getMean() const
Get the mean vector.
Definition: Standardizer.h:40
const torch::Tensor & getStdDev() const
Get the standard deviation vector.
Definition: Standardizer.h:42
void dataStore(std::ostream &stream, FaceCenteredMapFunctor< T, Map > &m, void *context)
Class for standardizing data (centering and scaling)
Definition: Standardizer.h:24
void dataLoad(std::istream &stream, FaceCenteredMapFunctor< T, Map > &m, void *context)
void computeSet(const torch::Tensor &input)
Methods for computing and setting mean and standard deviation.
Definition: Standardizer.C:79