201{
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)
std::string name(const ElemQuality q)