Skip to content
Snippets Groups Projects
Commit 47b4c5b3 authored by Michele Alberti's avatar Michele Alberti
Browse files

[language] Export onnx_parser and ovo_parset for standalone use.

parent 8b31794c
No related branches found
No related tags found
No related merge requests found
...@@ -114,29 +114,35 @@ let nnet_parser = ...@@ -114,29 +114,35 @@ let nnet_parser =
|> register_nn_as_tuple env n_inputs n_outputs filename |> register_nn_as_tuple env n_inputs n_outputs filename
|> register_nn_as_array env n_inputs n_outputs filename)) |> register_nn_as_array env n_inputs n_outputs filename))
let onnx_parser env _ filename _ = let onnx_parser =
let model = Onnx.parse filename in Env.Wenv.memoize 13 (fun env ->
match model with let h = Hashtbl.create (module String) in
| Error s -> Loc.errorm "%s" s Hashtbl.findi_or_add h ~default:(fun filename ->
| Ok { n_inputs; n_outputs; nier } -> let model = Onnx.parse filename in
let nier = match model with
match nier with | Error s -> Loc.errorm "%s" s
| Error msg -> | Ok { n_inputs; n_outputs; nier } ->
Logs.warn (fun m -> let nier =
m "Cannot build network intermediate representation:@ %s" msg); match nier with
None | Error msg ->
| Ok nier -> Some nier Logs.warn (fun m ->
in m "Cannot build network intermediate representation:@ %s" msg);
Wstdlib.Mstr.empty None
|> register_nn_as_tuple env n_inputs n_outputs filename ?nier | Ok nier -> Some nier
|> register_nn_as_array env n_inputs n_outputs filename ?nier in
Wstdlib.Mstr.empty
|> register_nn_as_tuple env n_inputs n_outputs filename ?nier
|> register_nn_as_array env n_inputs n_outputs filename ?nier))
let ovo_parser env _ filename _ = let ovo_parser =
let model = Ovo.parse filename in Env.Wenv.memoize 13 (fun env ->
match model with let h = Hashtbl.create (module String) in
| Error s -> Loc.errorm "%s" s Hashtbl.findi_or_add h ~default:(fun filename ->
| Ok { n_inputs; n_outputs } -> let model = Ovo.parse filename in
register_svm_as_array env n_inputs n_outputs filename Wstdlib.Mstr.empty match model with
| Error s -> Loc.errorm "%s" s
| Ok { n_inputs; n_outputs } ->
register_svm_as_array env n_inputs n_outputs filename Wstdlib.Mstr.empty))
let register_nnet_support () = let register_nnet_support () =
Env.register_format ~desc:"NNet format (ReLU only)" Pmodule.mlw_language Env.register_format ~desc:"NNet format (ReLU only)" Pmodule.mlw_language
...@@ -144,8 +150,8 @@ let register_nnet_support () = ...@@ -144,8 +150,8 @@ let register_nnet_support () =
let register_onnx_support () = let register_onnx_support () =
Env.register_format ~desc:"ONNX format" Pmodule.mlw_language "ONNX" [ "onnx" ] Env.register_format ~desc:"ONNX format" Pmodule.mlw_language "ONNX" [ "onnx" ]
onnx_parser (fun env _ filename _ -> onnx_parser env filename)
let register_ovo_support () = let register_ovo_support () =
Env.register_format ~desc:"OVO format" Pmodule.mlw_language "OVO" [ "ovo" ] Env.register_format ~desc:"OVO format" Pmodule.mlw_language "OVO" [ "ovo" ]
ovo_parser (fun env _ filename _ -> ovo_parser env filename)
...@@ -54,3 +54,11 @@ val register_ovo_support : unit -> unit ...@@ -54,3 +54,11 @@ val register_ovo_support : unit -> unit
val nnet_parser : Env.env -> string -> Pmodule.pmodule Wstdlib.Mstr.t val nnet_parser : Env.env -> string -> Pmodule.pmodule Wstdlib.Mstr.t
(* [nnet_parser env filename] parses and creates the theories corresponding to (* [nnet_parser env filename] parses and creates the theories corresponding to
the given nnet [filename]. The result is memoized. *) the given nnet [filename]. The result is memoized. *)
val onnx_parser : Env.env -> string -> Pmodule.pmodule Wstdlib.Mstr.t
(* [onnx_parser env filename] parses and creates the theories corresponding to
the given onnx [filename]. The result is memoized. *)
val ovo_parser : Env.env -> string -> Pmodule.pmodule Wstdlib.Mstr.t
(* [nnet_parser env filename] parses and creates the theories corresponding to
the given ovo [filename]. The result is memoized. *)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment