https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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  ,
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
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)
void computeSet(const torch::Tensor &input)
Methods for computing and setting mean and standard deviation.

◆ TEST() [2/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
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}

◆ TEST() [3/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
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

◆ TEST() [4/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
83 standardizer.computeSet(reference);
84 standardizer.getScaled(input_tensor);
85
86 EXPECT_TRUE(torch::allclose(input_tensor, gold));
87}

◆ TEST() [5/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
45 standardizer.computeSet(input_tensor);
46 standardizer.getStandardized(input_tensor);
47
48 EXPECT_TRUE(torch::allclose(input_tensor, gold));
49}

◆ TEST() [6/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}
void dataLoad(std::istream &stream, LineSegment &l, void *context)
void dataStore(std::ostream &stream, LineSegment &l, void *context)
const torch::Tensor & getStdDev() const
Get the standard deviation vector.
const torch::Tensor & getMean() const
Get the mean vector.

◆ TEST() [7/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}

◆ TEST() [8/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}

◆ TEST() [9/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}

◆ TEST() [10/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}