205 unsigned int num_inputs;
206 dataLoad(stream, num_inputs, context);
208 unsigned int num_outputs;
209 dataLoad(stream, num_outputs, context);
211 unsigned int num_hidden_layers;
212 dataLoad(stream, num_hidden_layers, context);
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);
218 unsigned int num_activation_items;
219 dataLoad(stream, num_activation_items, context);
221 std::vector<std::string> activation_functions;
222 activation_functions.resize(num_activation_items);
223 dataLoad(stream, activation_functions, context);
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));
229 std::underlying_type<torch::ScalarType>::type
data_type;
231 const torch::ScalarType datt(static_cast<torch::ScalarType>(
data_type));
233 nn = std::make_shared<Moose::LibtorchArtificialNeuralNet>(
234 name, num_inputs, num_outputs, num_neurons_per_layer, activation_functions, divt, datt);
236 torch::load(nn, name);
std::string name(const ElemQuality q)
void dataLoad(std::istream &stream, PenetrationInfo *&pinfo, void *context)