pub struct JSON {
pub file_name: String,
pub directory: String,
}Expand description
A builder for configuring and creating a JSON network I/O exporter.
This struct provides a fluent interface to customize the file name
and output directory for a JSON-encoded network representation.
Use the build method to validate the configuration and return
a concrete implementation of NetworkIO.
Fields§
§file_name: String§directory: StringImplementations§
Source§impl JSON
impl JSON
Sourcepub fn file_name(self, filename: &str) -> Self
pub fn file_name(self, filename: &str) -> Self
Sets the base name for the output JSON file.
Examples found in repository?
examples/energy_efficiency/energy_efficiency.rs (line 70)
55fn train_and_validate(
56 training_inputs: &DMat, training_targets: &DMat, validation_inputs: &DMat, validation_targets: &DMat,
57) {
58 let network_file = format!("{}_network", EXP_NAME);
59
60 let mut network = energy_efficiency_network(training_inputs.cols(), training_targets.cols());
61
62 let training_result = network.train(training_inputs, training_targets);
63 match training_result {
64 Ok(_) => {
65 info!("Training successfully completed");
66 network
67 .save(
68 JSON::default()
69 .directory(EXP_NAME)
70 .file_name(&network_file)
71 .build()
72 .unwrap(),
73 )
74 .unwrap();
75 let net_results = network.predict(training_inputs, training_targets).unwrap();
76 info!(
77 "{}",
78 helper::pretty_compare_matrices(
79 training_inputs,
80 training_targets,
81 &net_results.predictions,
82 helper::CompareMode::Regression
83 )
84 );
85 info!("Training: {}", net_results.display_metrics());
86 }
87 Err(e) => {
88 error!("Training failed: {}", e);
89 }
90 }
91
92 network = Network::load(
93 JSON::default()
94 .directory(EXP_NAME)
95 .file_name(&network_file)
96 .build()
97 .unwrap(),
98 )
99 .unwrap();
100 let net_results = network.predict(validation_inputs, validation_targets).unwrap();
101 log::info!(
102 "{}",
103 helper::pretty_compare_matrices(
104 validation_inputs,
105 validation_targets,
106 &net_results.predictions,
107 helper::CompareMode::Regression
108 )
109 );
110 info!("Validation: {}", net_results.display_metrics());
111}More examples
examples/wine/wine.rs (line 72)
57fn train_and_validate(
58 training_inputs: &DMat, training_targets: &DMat, validation_inputs: &DMat, validation_targets: &DMat,
59) {
60 let network_file = format!("{}_network", EXP_NAME);
61
62 let mut network = one_hot_encode_network(training_inputs.cols(), training_targets.cols());
63
64 let training_result = network.train(training_inputs, training_targets);
65 match training_result {
66 Ok(_) => {
67 info!("Training successfully completed");
68 network
69 .save(
70 JSON::default()
71 .directory(EXP_NAME)
72 .file_name(&network_file)
73 .build()
74 .unwrap(),
75 )
76 .unwrap();
77 let net_results = network.predict(training_inputs, training_targets).unwrap();
78 info!(
79 "{}",
80 helper::pretty_compare_matrices(
81 training_inputs,
82 training_targets,
83 &net_results.predictions,
84 helper::CompareMode::Classification
85 )
86 );
87 info!("Training: {}", net_results.display_metrics());
88 }
89 Err(e) => {
90 eprintln!("Training failed: {}", e);
91 }
92 }
93
94 network = Network::load(
95 JSON::default()
96 .directory(EXP_NAME)
97 .file_name(&network_file)
98 .build()
99 .unwrap(),
100 )
101 .unwrap();
102 let net_results = network.predict(validation_inputs, validation_targets).unwrap();
103 info!(
104 "{}",
105 helper::pretty_compare_matrices(
106 validation_inputs,
107 validation_targets,
108 &net_results.predictions,
109 helper::CompareMode::Classification
110 )
111 );
112 info!("Validation: {}", net_results.display_metrics());
113}examples/iris/iris.rs (line 64)
50fn train_and_validate() {
51 let network_file = format!("{}_network", EXP_NAME);
52
53 let (training_inputs, training_targets) = iris_inputs_outputs("train", 7, 4).unwrap();
54 let mut network = iris_network(training_inputs.cols(), training_targets.cols());
55
56 let training_result = network.train(&training_inputs, &training_targets);
57 match training_result {
58 Ok(_) => {
59 info!("Training successfully completed");
60 network
61 .save(
62 JSON::default()
63 .directory(EXP_NAME)
64 .file_name(&network_file)
65 .build()
66 .unwrap(),
67 )
68 .unwrap();
69 let net_results = network.predict(&training_inputs, &training_targets).unwrap();
70 info!(
71 "{}",
72 helper::pretty_compare_matrices(
73 &training_inputs,
74 &training_targets,
75 &net_results.predictions,
76 helper::CompareMode::Classification
77 )
78 );
79 info!("Training: {}", net_results.display_metrics());
80 }
81 Err(e) => {
82 eprintln!("Training failed: {}", e);
83 }
84 }
85
86 network = Network::load(
87 JSON::default()
88 .directory(EXP_NAME)
89 .file_name(&network_file)
90 .build()
91 .unwrap(),
92 )
93 .unwrap();
94 let (validation_inputs, validation_targets) = iris_inputs_outputs("test", 7, 4).unwrap();
95 let net_results = network.predict(&validation_inputs, &validation_targets).unwrap();
96 log::info!(
97 "{}",
98 helper::pretty_compare_matrices(
99 &validation_inputs,
100 &validation_targets,
101 &net_results.predictions,
102 helper::CompareMode::Classification
103 )
104 );
105 info!("Validation: {}", net_results.display_metrics());
106}examples/triplets/triplets.rs (line 77)
63fn train_and_validate() {
64 let network_file = format!("{}_network", EXP_NAME);
65 let training_inputs = data::training_inputs();
66 let training_targets = data::training_targets();
67 let mut network = triplets_network(training_inputs.cols(), training_targets.cols());
68
69 let train_result = network.train(&training_inputs, &training_targets);
70 match train_result {
71 Ok(_) => {
72 info!("Training successfully completed");
73 network
74 .save(
75 JSON::default()
76 .directory(EXP_NAME)
77 .file_name(&network_file)
78 .build()
79 .unwrap(),
80 )
81 .unwrap();
82 let net_results = network.predict(&training_inputs, &training_targets).unwrap();
83 info!(
84 "{}",
85 helper::pretty_compare_matrices(
86 &training_inputs,
87 &training_targets,
88 &net_results.predictions,
89 helper::CompareMode::Classification
90 )
91 );
92 info!("Training: {}", net_results.display_metrics());
93 }
94 Err(e) => {
95 eprintln!("Training failed: {}", e);
96 }
97 }
98
99 network = Network::load(
100 JSON::default()
101 .directory(EXP_NAME)
102 .file_name(&network_file)
103 .build()
104 .unwrap(),
105 )
106 .unwrap();
107 let validation_inputs = data::validation_inputs();
108 let validation_targets = data::validation_targets();
109 let net_results = network.predict(&validation_inputs, &validation_targets).unwrap();
110 log::info!(
111 "{}",
112 helper::pretty_compare_matrices(
113 &validation_inputs,
114 &validation_targets,
115 &net_results.predictions,
116 helper::CompareMode::Classification
117 )
118 );
119 info!("Validation: {}", net_results.display_metrics());
120}Sourcepub fn directory(self, directory: &str) -> Self
pub fn directory(self, directory: &str) -> Self
Sets the output directory for the JSON file.
Examples found in repository?
examples/energy_efficiency/energy_efficiency.rs (line 69)
55fn train_and_validate(
56 training_inputs: &DMat, training_targets: &DMat, validation_inputs: &DMat, validation_targets: &DMat,
57) {
58 let network_file = format!("{}_network", EXP_NAME);
59
60 let mut network = energy_efficiency_network(training_inputs.cols(), training_targets.cols());
61
62 let training_result = network.train(training_inputs, training_targets);
63 match training_result {
64 Ok(_) => {
65 info!("Training successfully completed");
66 network
67 .save(
68 JSON::default()
69 .directory(EXP_NAME)
70 .file_name(&network_file)
71 .build()
72 .unwrap(),
73 )
74 .unwrap();
75 let net_results = network.predict(training_inputs, training_targets).unwrap();
76 info!(
77 "{}",
78 helper::pretty_compare_matrices(
79 training_inputs,
80 training_targets,
81 &net_results.predictions,
82 helper::CompareMode::Regression
83 )
84 );
85 info!("Training: {}", net_results.display_metrics());
86 }
87 Err(e) => {
88 error!("Training failed: {}", e);
89 }
90 }
91
92 network = Network::load(
93 JSON::default()
94 .directory(EXP_NAME)
95 .file_name(&network_file)
96 .build()
97 .unwrap(),
98 )
99 .unwrap();
100 let net_results = network.predict(validation_inputs, validation_targets).unwrap();
101 log::info!(
102 "{}",
103 helper::pretty_compare_matrices(
104 validation_inputs,
105 validation_targets,
106 &net_results.predictions,
107 helper::CompareMode::Regression
108 )
109 );
110 info!("Validation: {}", net_results.display_metrics());
111}More examples
examples/wine/wine.rs (line 71)
57fn train_and_validate(
58 training_inputs: &DMat, training_targets: &DMat, validation_inputs: &DMat, validation_targets: &DMat,
59) {
60 let network_file = format!("{}_network", EXP_NAME);
61
62 let mut network = one_hot_encode_network(training_inputs.cols(), training_targets.cols());
63
64 let training_result = network.train(training_inputs, training_targets);
65 match training_result {
66 Ok(_) => {
67 info!("Training successfully completed");
68 network
69 .save(
70 JSON::default()
71 .directory(EXP_NAME)
72 .file_name(&network_file)
73 .build()
74 .unwrap(),
75 )
76 .unwrap();
77 let net_results = network.predict(training_inputs, training_targets).unwrap();
78 info!(
79 "{}",
80 helper::pretty_compare_matrices(
81 training_inputs,
82 training_targets,
83 &net_results.predictions,
84 helper::CompareMode::Classification
85 )
86 );
87 info!("Training: {}", net_results.display_metrics());
88 }
89 Err(e) => {
90 eprintln!("Training failed: {}", e);
91 }
92 }
93
94 network = Network::load(
95 JSON::default()
96 .directory(EXP_NAME)
97 .file_name(&network_file)
98 .build()
99 .unwrap(),
100 )
101 .unwrap();
102 let net_results = network.predict(validation_inputs, validation_targets).unwrap();
103 info!(
104 "{}",
105 helper::pretty_compare_matrices(
106 validation_inputs,
107 validation_targets,
108 &net_results.predictions,
109 helper::CompareMode::Classification
110 )
111 );
112 info!("Validation: {}", net_results.display_metrics());
113}examples/iris/iris.rs (line 63)
50fn train_and_validate() {
51 let network_file = format!("{}_network", EXP_NAME);
52
53 let (training_inputs, training_targets) = iris_inputs_outputs("train", 7, 4).unwrap();
54 let mut network = iris_network(training_inputs.cols(), training_targets.cols());
55
56 let training_result = network.train(&training_inputs, &training_targets);
57 match training_result {
58 Ok(_) => {
59 info!("Training successfully completed");
60 network
61 .save(
62 JSON::default()
63 .directory(EXP_NAME)
64 .file_name(&network_file)
65 .build()
66 .unwrap(),
67 )
68 .unwrap();
69 let net_results = network.predict(&training_inputs, &training_targets).unwrap();
70 info!(
71 "{}",
72 helper::pretty_compare_matrices(
73 &training_inputs,
74 &training_targets,
75 &net_results.predictions,
76 helper::CompareMode::Classification
77 )
78 );
79 info!("Training: {}", net_results.display_metrics());
80 }
81 Err(e) => {
82 eprintln!("Training failed: {}", e);
83 }
84 }
85
86 network = Network::load(
87 JSON::default()
88 .directory(EXP_NAME)
89 .file_name(&network_file)
90 .build()
91 .unwrap(),
92 )
93 .unwrap();
94 let (validation_inputs, validation_targets) = iris_inputs_outputs("test", 7, 4).unwrap();
95 let net_results = network.predict(&validation_inputs, &validation_targets).unwrap();
96 log::info!(
97 "{}",
98 helper::pretty_compare_matrices(
99 &validation_inputs,
100 &validation_targets,
101 &net_results.predictions,
102 helper::CompareMode::Classification
103 )
104 );
105 info!("Validation: {}", net_results.display_metrics());
106}examples/triplets/triplets.rs (line 76)
63fn train_and_validate() {
64 let network_file = format!("{}_network", EXP_NAME);
65 let training_inputs = data::training_inputs();
66 let training_targets = data::training_targets();
67 let mut network = triplets_network(training_inputs.cols(), training_targets.cols());
68
69 let train_result = network.train(&training_inputs, &training_targets);
70 match train_result {
71 Ok(_) => {
72 info!("Training successfully completed");
73 network
74 .save(
75 JSON::default()
76 .directory(EXP_NAME)
77 .file_name(&network_file)
78 .build()
79 .unwrap(),
80 )
81 .unwrap();
82 let net_results = network.predict(&training_inputs, &training_targets).unwrap();
83 info!(
84 "{}",
85 helper::pretty_compare_matrices(
86 &training_inputs,
87 &training_targets,
88 &net_results.predictions,
89 helper::CompareMode::Classification
90 )
91 );
92 info!("Training: {}", net_results.display_metrics());
93 }
94 Err(e) => {
95 eprintln!("Training failed: {}", e);
96 }
97 }
98
99 network = Network::load(
100 JSON::default()
101 .directory(EXP_NAME)
102 .file_name(&network_file)
103 .build()
104 .unwrap(),
105 )
106 .unwrap();
107 let validation_inputs = data::validation_inputs();
108 let validation_targets = data::validation_targets();
109 let net_results = network.predict(&validation_inputs, &validation_targets).unwrap();
110 log::info!(
111 "{}",
112 helper::pretty_compare_matrices(
113 &validation_inputs,
114 &validation_targets,
115 &net_results.predictions,
116 helper::CompareMode::Classification
117 )
118 );
119 info!("Validation: {}", net_results.display_metrics());
120}Sourcepub fn build(self) -> Result<impl NetworkIO, NetworkError>
pub fn build(self) -> Result<impl NetworkIO, NetworkError>
Finalizes the builder and constructs a JSONNetworkIO if the configuration is valid.
Examples found in repository?
examples/energy_efficiency/energy_efficiency.rs (line 71)
55fn train_and_validate(
56 training_inputs: &DMat, training_targets: &DMat, validation_inputs: &DMat, validation_targets: &DMat,
57) {
58 let network_file = format!("{}_network", EXP_NAME);
59
60 let mut network = energy_efficiency_network(training_inputs.cols(), training_targets.cols());
61
62 let training_result = network.train(training_inputs, training_targets);
63 match training_result {
64 Ok(_) => {
65 info!("Training successfully completed");
66 network
67 .save(
68 JSON::default()
69 .directory(EXP_NAME)
70 .file_name(&network_file)
71 .build()
72 .unwrap(),
73 )
74 .unwrap();
75 let net_results = network.predict(training_inputs, training_targets).unwrap();
76 info!(
77 "{}",
78 helper::pretty_compare_matrices(
79 training_inputs,
80 training_targets,
81 &net_results.predictions,
82 helper::CompareMode::Regression
83 )
84 );
85 info!("Training: {}", net_results.display_metrics());
86 }
87 Err(e) => {
88 error!("Training failed: {}", e);
89 }
90 }
91
92 network = Network::load(
93 JSON::default()
94 .directory(EXP_NAME)
95 .file_name(&network_file)
96 .build()
97 .unwrap(),
98 )
99 .unwrap();
100 let net_results = network.predict(validation_inputs, validation_targets).unwrap();
101 log::info!(
102 "{}",
103 helper::pretty_compare_matrices(
104 validation_inputs,
105 validation_targets,
106 &net_results.predictions,
107 helper::CompareMode::Regression
108 )
109 );
110 info!("Validation: {}", net_results.display_metrics());
111}More examples
examples/wine/wine.rs (line 73)
57fn train_and_validate(
58 training_inputs: &DMat, training_targets: &DMat, validation_inputs: &DMat, validation_targets: &DMat,
59) {
60 let network_file = format!("{}_network", EXP_NAME);
61
62 let mut network = one_hot_encode_network(training_inputs.cols(), training_targets.cols());
63
64 let training_result = network.train(training_inputs, training_targets);
65 match training_result {
66 Ok(_) => {
67 info!("Training successfully completed");
68 network
69 .save(
70 JSON::default()
71 .directory(EXP_NAME)
72 .file_name(&network_file)
73 .build()
74 .unwrap(),
75 )
76 .unwrap();
77 let net_results = network.predict(training_inputs, training_targets).unwrap();
78 info!(
79 "{}",
80 helper::pretty_compare_matrices(
81 training_inputs,
82 training_targets,
83 &net_results.predictions,
84 helper::CompareMode::Classification
85 )
86 );
87 info!("Training: {}", net_results.display_metrics());
88 }
89 Err(e) => {
90 eprintln!("Training failed: {}", e);
91 }
92 }
93
94 network = Network::load(
95 JSON::default()
96 .directory(EXP_NAME)
97 .file_name(&network_file)
98 .build()
99 .unwrap(),
100 )
101 .unwrap();
102 let net_results = network.predict(validation_inputs, validation_targets).unwrap();
103 info!(
104 "{}",
105 helper::pretty_compare_matrices(
106 validation_inputs,
107 validation_targets,
108 &net_results.predictions,
109 helper::CompareMode::Classification
110 )
111 );
112 info!("Validation: {}", net_results.display_metrics());
113}examples/iris/iris.rs (line 65)
50fn train_and_validate() {
51 let network_file = format!("{}_network", EXP_NAME);
52
53 let (training_inputs, training_targets) = iris_inputs_outputs("train", 7, 4).unwrap();
54 let mut network = iris_network(training_inputs.cols(), training_targets.cols());
55
56 let training_result = network.train(&training_inputs, &training_targets);
57 match training_result {
58 Ok(_) => {
59 info!("Training successfully completed");
60 network
61 .save(
62 JSON::default()
63 .directory(EXP_NAME)
64 .file_name(&network_file)
65 .build()
66 .unwrap(),
67 )
68 .unwrap();
69 let net_results = network.predict(&training_inputs, &training_targets).unwrap();
70 info!(
71 "{}",
72 helper::pretty_compare_matrices(
73 &training_inputs,
74 &training_targets,
75 &net_results.predictions,
76 helper::CompareMode::Classification
77 )
78 );
79 info!("Training: {}", net_results.display_metrics());
80 }
81 Err(e) => {
82 eprintln!("Training failed: {}", e);
83 }
84 }
85
86 network = Network::load(
87 JSON::default()
88 .directory(EXP_NAME)
89 .file_name(&network_file)
90 .build()
91 .unwrap(),
92 )
93 .unwrap();
94 let (validation_inputs, validation_targets) = iris_inputs_outputs("test", 7, 4).unwrap();
95 let net_results = network.predict(&validation_inputs, &validation_targets).unwrap();
96 log::info!(
97 "{}",
98 helper::pretty_compare_matrices(
99 &validation_inputs,
100 &validation_targets,
101 &net_results.predictions,
102 helper::CompareMode::Classification
103 )
104 );
105 info!("Validation: {}", net_results.display_metrics());
106}examples/triplets/triplets.rs (line 78)
63fn train_and_validate() {
64 let network_file = format!("{}_network", EXP_NAME);
65 let training_inputs = data::training_inputs();
66 let training_targets = data::training_targets();
67 let mut network = triplets_network(training_inputs.cols(), training_targets.cols());
68
69 let train_result = network.train(&training_inputs, &training_targets);
70 match train_result {
71 Ok(_) => {
72 info!("Training successfully completed");
73 network
74 .save(
75 JSON::default()
76 .directory(EXP_NAME)
77 .file_name(&network_file)
78 .build()
79 .unwrap(),
80 )
81 .unwrap();
82 let net_results = network.predict(&training_inputs, &training_targets).unwrap();
83 info!(
84 "{}",
85 helper::pretty_compare_matrices(
86 &training_inputs,
87 &training_targets,
88 &net_results.predictions,
89 helper::CompareMode::Classification
90 )
91 );
92 info!("Training: {}", net_results.display_metrics());
93 }
94 Err(e) => {
95 eprintln!("Training failed: {}", e);
96 }
97 }
98
99 network = Network::load(
100 JSON::default()
101 .directory(EXP_NAME)
102 .file_name(&network_file)
103 .build()
104 .unwrap(),
105 )
106 .unwrap();
107 let validation_inputs = data::validation_inputs();
108 let validation_targets = data::validation_targets();
109 let net_results = network.predict(&validation_inputs, &validation_targets).unwrap();
110 log::info!(
111 "{}",
112 helper::pretty_compare_matrices(
113 &validation_inputs,
114 &validation_targets,
115 &net_results.predictions,
116 helper::CompareMode::Classification
117 )
118 );
119 info!("Validation: {}", net_results.display_metrics());
120}Trait Implementations§
Auto Trait Implementations§
impl Freeze for JSON
impl RefUnwindSafe for JSON
impl Send for JSON
impl Sync for JSON
impl Unpin for JSON
impl UnsafeUnpin for JSON
impl UnwindSafe for JSON
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.