2#ifndef RIVET_RivetLWTNN_HH
3#define RIVET_RivetLWTNN_HH
5#include "Rivet/Tools/RivetPaths.hh"
6#include "lwtnn/Exceptions.hh"
7#include "lwtnn/LightweightGraph.hh"
8#include "lwtnn/LightweightNeuralNetwork.hh"
9#include "lwtnn/parse_json.hh"
25 input = std::ifstream(jsonpath);
26 return lwt::parse_json(input);
28 catch (lwt::LightweightNNException& e) {
30 throw IOError(
"Error loading LWTNN JSON config");
46 input = std::ifstream(jsonpath);
47 return lwt::parse_json_graph(input);
49 catch (lwt::LightweightNNException& e) {
51 throw IOError(
"Error loading LWTNN JSON config");
59 std::unique_ptr<lwt::LightweightNeuralNetwork>
mkLWTNN(
const lwt::JSONConfig& jsonconfig) {
61 return std::make_unique<lwt::LightweightNeuralNetwork>(jsonconfig.inputs, jsonconfig.layers,
64 catch (lwt::LightweightNNException& e) {
65 throw IOError(
"Error initialising from LWTNN JSON config");
74 std::unique_ptr<lwt::LightweightGraph>
mkGraphLWTNN(
const lwt::GraphConfig& graphconfig) {
76 return std::make_unique<lwt::LightweightGraph>(graphconfig);
78 catch (lwt::LightweightNNException& e) {
79 throw IOError(
"Error initialising from LWTNN JSON config");
88 std::unique_ptr<lwt::LightweightNeuralNetwork>
mkLWTNN(
const string& jsonpath) {
99 std::unique_ptr<lwt::LightweightGraph>
mkGraphLWTNN(
const string& jsonpath) {
Definition LHCbCommon.hh:9
lwt::JSONConfig readLWTNNConfig(const string &jsonpath)
Definition RivetLWTNN.hh:20
lwt::GraphConfig readLWTNNGraphConfig(const string &jsonpath)
Read a LWT Graph config from the JSON path.
Definition RivetLWTNN.hh:41
std::unique_ptr< lwt::LightweightNeuralNetwork > mkLWTNN(const lwt::JSONConfig &jsonconfig)
Definition RivetLWTNN.hh:59
std::unique_ptr< lwt::LightweightGraph > mkGraphLWTNN(const lwt::GraphConfig &graphconfig)
Make a LWT Graph from the JSON config object.
Definition RivetLWTNN.hh:74
Error for I/O failures.
Definition Exceptions.hh:96