https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Namespaces | Functions
LibtorchArtificialNeuralNet.C File Reference

Go to the source code of this file.

Namespaces

namespace  Moose
 MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to address this in their environment if C++17 compatibility isn't found.
 

Functions

void Moose::to_json (nlohmann::json &json, const Moose::LibtorchArtificialNeuralNet *const &network)
 
template<>
void dataStore< Moose::LibtorchArtificialNeuralNet > (std::ostream &stream, std::shared_ptr< Moose::LibtorchArtificialNeuralNet > &nn, void *context)
 
template<>
void dataLoad< Moose::LibtorchArtificialNeuralNet > (std::istream &stream, std::shared_ptr< Moose::LibtorchArtificialNeuralNet > &nn, void *context)
 
template<>
void dataStore< Moose::LibtorchArtificialNeuralNet const > (std::ostream &, Moose::LibtorchArtificialNeuralNet const *&, void *)
 
template<>
void dataLoad< Moose::LibtorchArtificialNeuralNet const > (std::istream &, Moose::LibtorchArtificialNeuralNet const *&, void *)
 

Function Documentation

◆ dataLoad< Moose::LibtorchArtificialNeuralNet >()

template<>
void dataLoad< Moose::LibtorchArtificialNeuralNet > ( std::istream &  stream,
std::shared_ptr< Moose::LibtorchArtificialNeuralNet > &  nn,
void *  context 
)

Definition at line 198 of file LibtorchArtificialNeuralNet.C.

201{
202 std::string name;
203 dataLoad(stream, name, context);
204
205 unsigned int num_inputs;
206 dataLoad(stream, num_inputs, context);
207
208 unsigned int num_outputs;
209 dataLoad(stream, num_outputs, context);
210
211 unsigned int num_hidden_layers;
212 dataLoad(stream, num_hidden_layers, context);
213
214 std::vector<unsigned int> num_neurons_per_layer;
215 num_neurons_per_layer.resize(num_hidden_layers);
216 dataLoad(stream, num_neurons_per_layer, context);
217
218 unsigned int num_activation_items;
219 dataLoad(stream, num_activation_items, context);
220
221 std::vector<std::string> activation_functions;
222 activation_functions.resize(num_activation_items);
223 dataLoad(stream, activation_functions, context);
224
225 std::underlying_type<torch::DeviceType>::type device_type;
226 dataLoad(stream, device_type, context);
227 const torch::DeviceType divt(static_cast<torch::DeviceType>(device_type));
228
229 std::underlying_type<torch::ScalarType>::type data_type;
230 dataLoad(stream, data_type, context);
231 const torch::ScalarType datt(static_cast<torch::ScalarType>(data_type));
232
233 nn = std::make_shared<Moose::LibtorchArtificialNeuralNet>(
234 name, num_inputs, num_outputs, num_neurons_per_layer, activation_functions, divt, datt);
235
236 torch::load(nn, name);
237}
void dataLoad(std::istream &stream, LineSegment &l, void *context)
MPI_Datatype data_type
std::string name(const ElemQuality q)

◆ dataLoad< Moose::LibtorchArtificialNeuralNet const >()

template<>
void dataLoad< Moose::LibtorchArtificialNeuralNet const > ( std::istream &  stream,
Moose::LibtorchArtificialNeuralNet const *&  nn,
void *  context 
)

Definition at line 249 of file LibtorchArtificialNeuralNet.C.

254{
255}

◆ dataStore< Moose::LibtorchArtificialNeuralNet >()

template<>
void dataStore< Moose::LibtorchArtificialNeuralNet > ( std::ostream &  stream,
std::shared_ptr< Moose::LibtorchArtificialNeuralNet > &  nn,
void *  context 
)

Definition at line 160 of file LibtorchArtificialNeuralNet.C.

163{
164 std::string n(nn->name());
165 dataStore(stream, n, context);
166
167 unsigned int ni(nn->numInputs());
168 dataStore(stream, ni, context);
169
170 unsigned int no(nn->numOutputs());
171 dataStore(stream, no, context);
172
173 unsigned int nhl(nn->numHiddenLayers());
174 dataStore(stream, nhl, context);
175
176 std::vector<unsigned int> nnpl(nn->numNeuronsPerLayer());
177 dataStore(stream, nnpl, context);
178
179 unsigned int afs(nn->activationFunctions().size());
180 dataStore(stream, afs, context);
181
182 std::vector<std::string> items(afs);
183 for (unsigned int i = 0; i < afs; ++i)
184 items[i] = nn->activationFunctions()[i];
185
186 dataStore(stream, items, context);
187
188 auto device_type = static_cast<std::underlying_type<torch::DeviceType>::type>(nn->deviceType());
189 dataStore(stream, device_type, context);
190
191 auto data_type = static_cast<std::underlying_type<torch::ScalarType>::type>(nn->dataType());
192 dataStore(stream, data_type, context);
193
194 torch::save(nn, nn->name());
195}
void dataStore(std::ostream &stream, LineSegment &l, void *context)

◆ dataStore< Moose::LibtorchArtificialNeuralNet const >()

template<>
void dataStore< Moose::LibtorchArtificialNeuralNet const > ( std::ostream &  stream,
Moose::LibtorchArtificialNeuralNet const *&  nn,
void *  context 
)

Definition at line 240 of file LibtorchArtificialNeuralNet.C.

245{
246}