diff --git a/model.ml b/model.ml index 19ca3828460d54ab60cbe0d53860673f6e0a05bb..8fc7eb5e6e5fa2e3e858c2a4198d5974f56a2920 100644 --- a/model.ml +++ b/model.ml @@ -153,26 +153,28 @@ let handle_nnet_range_values n_inputs in_channel = let retrieve_nnet_metadata filename = let open Result in let in_channel = Stdlib.open_in filename in - handle_nnet_header filename in_channel >>= fun () -> - handle_nnet_basic_info in_channel >>= fun (n_ls, n_ins, n_outs, max_l_size) -> - handle_nnet_layer_sizes n_ls in_channel >>= fun layer_sizes -> - handle_nnet_unused_flag in_channel >>= fun () -> - handle_nnet_min_input_values n_ins in_channel >>= fun min_input_values -> - handle_nnet_max_input_values n_ins in_channel >>= fun max_input_values -> - handle_nnet_mean_values n_ins in_channel >>= fun mean_values -> - handle_nnet_range_values n_ins in_channel >>= fun range_values -> - Stdlib.close_in in_channel; - Ok - { n_layers = n_ls; - n_inputs = n_ins; - n_outputs = n_outs; - max_layer_size = max_l_size; - layer_sizes; - min_input_values; - max_input_values; - mean_values; - range_values; } - + try + handle_nnet_header filename in_channel >>= fun () -> + handle_nnet_basic_info in_channel >>= fun (n_ls, n_ins, n_outs, max_l_size) -> + handle_nnet_layer_sizes n_ls in_channel >>= fun layer_sizes -> + handle_nnet_unused_flag in_channel >>= fun () -> + handle_nnet_min_input_values n_ins in_channel >>= fun min_input_values -> + handle_nnet_max_input_values n_ins in_channel >>= fun max_input_values -> + handle_nnet_mean_values n_ins in_channel >>= fun mean_values -> + handle_nnet_range_values n_ins in_channel >>= fun range_values -> + Stdlib.close_in in_channel; + Ok + { n_layers = n_ls; + n_inputs = n_ins; + n_outputs = n_outs; + max_layer_size = max_l_size; + layer_sizes; + min_input_values; + max_input_values; + mean_values; + range_values; } + with Failure msg -> + Error (Format.sprintf "Unexpected error: %s." msg) (* Generic model. *)