https://mooseframework.inl.gov
Classes | Namespaces | Functions
LibtorchArtificialNeuralNet.h File Reference

Go to the source code of this file.

Classes

class  Moose::LibtorchArtificialNeuralNet
 

Namespaces

 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 &stream, Moose::LibtorchArtificialNeuralNet const *&nn, void *context)
 
template<>
void dataLoad< Moose::LibtorchArtificialNeuralNet const > (std::istream &stream, Moose::LibtorchArtificialNeuralNet const *&nn, void *context)
 

Function Documentation

◆ dataLoad< Moose::LibtorchArtificialNeuralNet >()

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

Definition at line 199 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 }
std::string name(const ElemQuality q)
MPI_Datatype data_type
void dataLoad(std::istream &stream, PenetrationInfo *&pinfo, void *context)

◆ dataLoad< Moose::LibtorchArtificialNeuralNet const >()

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

Definition at line 250 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 161 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 }
MPI_Datatype data_type
void dataStore(std::ostream &stream, PenetrationInfo *&pinfo, void *context)

◆ dataStore< Moose::LibtorchArtificialNeuralNet const >()

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

Definition at line 241 of file LibtorchArtificialNeuralNet.C.

245 {
246 }