Make.Graph
module Neuron : sig ... end
type node = Make_Embedded(A).node = {
mutable name : string;
mutable prev : node array;
mutable next : node array;
mutable neuron : Neuron.neuron;
mutable output : Neuron.Optimise.Algodiff.t option;
mutable network : network;
mutable train : bool;
}
and network = Make_Embedded(A).network = {
mutable nnid : string;
mutable size : int;
mutable roots : node array;
mutable outputs : node array;
mutable topo : node array;
}
val make_node :
?name:string ->
?train:bool ->
node array ->
node array ->
Neuron.neuron ->
Neuron.Optimise.Algodiff.t option ->
network ->
node
val get_network_name : network -> string
val set_network_name : network -> string -> unit
val collect_output : node array -> Neuron.Optimise.Algodiff.t array
val add_node :
?act_typ:Neuron.Activation.typ ->
network ->
node array ->
node ->
node
val input_shape : network -> int array
val input_shapes : network -> int array array
val init : network -> unit
val reset : network -> unit
val mktag : int -> network -> unit
val mkpar : network -> Neuron.Optimise.Algodiff.t array array
val mkpri : network -> Neuron.Optimise.Algodiff.t array array
val mkadj : network -> Neuron.Optimise.Algodiff.t array array
val update : network -> Neuron.Optimise.Algodiff.t array array -> unit
val run : Neuron.Optimise.Algodiff.t -> network -> Neuron.Optimise.Algodiff.t
val run_inputs :
Neuron.Optimise.Algodiff.t array ->
network ->
Neuron.Optimise.Algodiff.t array
val forward :
network ->
Neuron.Optimise.Algodiff.t ->
Neuron.Optimise.Algodiff.t * Neuron.Optimise.Algodiff.t array array
val forward_inputs :
network ->
Neuron.Optimise.Algodiff.t array ->
Neuron.Optimise.Algodiff.t array * Neuron.Optimise.Algodiff.t array array
val backward :
network ->
Neuron.Optimise.Algodiff.t ->
Neuron.Optimise.Algodiff.t array array
* Neuron.Optimise.Algodiff.t array array
val model :
network ->
Neuron.Optimise.Algodiff.A.arr ->
Neuron.Optimise.Algodiff.A.arr
val model_inputs :
network ->
Neuron.Optimise.Algodiff.A.arr array ->
Neuron.Optimise.Algodiff.A.arr array
val input : ?name:string -> int array -> node
val inputs : ?names:string array -> int array array -> node array
val activation : ?name:string -> Neuron.Activation.typ -> node -> node
val linear :
?name:string ->
?init_typ:Neuron.Init.typ ->
?act_typ:Neuron.Activation.typ ->
int ->
node ->
node
val linear_nobias :
?name:string ->
?init_typ:Neuron.Init.typ ->
?act_typ:Neuron.Activation.typ ->
int ->
node ->
node
val embedding :
?name:string ->
?init_typ:Neuron.Init.typ ->
?act_typ:Neuron.Activation.typ ->
int ->
int ->
node ->
node
val recurrent :
?name:string ->
?init_typ:Neuron.Init.typ ->
act_typ:Neuron.Activation.typ ->
int ->
int ->
node ->
node
val lstm : ?name:string -> ?init_typ:Neuron.Init.typ -> int -> node -> node
val gru : ?name:string -> ?init_typ:Neuron.Init.typ -> int -> node -> node
val conv1d :
?name:string ->
?padding:Owl_types.padding ->
?init_typ:Neuron.Init.typ ->
?act_typ:Neuron.Activation.typ ->
int array ->
int array ->
node ->
node
val conv2d :
?name:string ->
?padding:Owl_types.padding ->
?init_typ:Neuron.Init.typ ->
?act_typ:Neuron.Activation.typ ->
int array ->
int array ->
node ->
node
val conv3d :
?name:string ->
?padding:Owl_types.padding ->
?init_typ:Neuron.Init.typ ->
?act_typ:Neuron.Activation.typ ->
int array ->
int array ->
node ->
node
val dilated_conv1d :
?name:string ->
?padding:Owl_types.padding ->
?init_typ:Neuron.Init.typ ->
?act_typ:Neuron.Activation.typ ->
int array ->
int array ->
int array ->
node ->
node
val dilated_conv2d :
?name:string ->
?padding:Owl_types.padding ->
?init_typ:Neuron.Init.typ ->
?act_typ:Neuron.Activation.typ ->
int array ->
int array ->
int array ->
node ->
node
val dilated_conv3d :
?name:string ->
?padding:Owl_types.padding ->
?init_typ:Neuron.Init.typ ->
?act_typ:Neuron.Activation.typ ->
int array ->
int array ->
int array ->
node ->
node
val transpose_conv1d :
?name:string ->
?padding:Owl_types.padding ->
?init_typ:Neuron.Init.typ ->
?act_typ:Neuron.Activation.typ ->
int array ->
int array ->
node ->
node
val transpose_conv2d :
?name:string ->
?padding:Owl_types.padding ->
?init_typ:Neuron.Init.typ ->
?act_typ:Neuron.Activation.typ ->
int array ->
int array ->
node ->
node
val transpose_conv3d :
?name:string ->
?padding:Owl_types.padding ->
?init_typ:Neuron.Init.typ ->
?act_typ:Neuron.Activation.typ ->
int array ->
int array ->
node ->
node
val fully_connected :
?name:string ->
?init_typ:Neuron.Init.typ ->
?act_typ:Neuron.Activation.typ ->
int ->
node ->
node
val max_pool1d :
?name:string ->
?padding:Owl_types.padding ->
?act_typ:Neuron.Activation.typ ->
int array ->
int array ->
node ->
node
val max_pool2d :
?name:string ->
?padding:Owl_types.padding ->
?act_typ:Neuron.Activation.typ ->
int array ->
int array ->
node ->
node
val avg_pool1d :
?name:string ->
?padding:Owl_types.padding ->
?act_typ:Neuron.Activation.typ ->
int array ->
int array ->
node ->
node
val avg_pool2d :
?name:string ->
?padding:Owl_types.padding ->
?act_typ:Neuron.Activation.typ ->
int array ->
int array ->
node ->
node
val global_max_pool1d :
?name:string ->
?act_typ:Neuron.Activation.typ ->
node ->
node
val global_max_pool2d :
?name:string ->
?act_typ:Neuron.Activation.typ ->
node ->
node
val global_avg_pool1d :
?name:string ->
?act_typ:Neuron.Activation.typ ->
node ->
node
val global_avg_pool2d :
?name:string ->
?act_typ:Neuron.Activation.typ ->
node ->
node
val upsampling2d :
?name:string ->
?act_typ:Neuron.Activation.typ ->
int array ->
node ->
node
val padding2d :
?name:string ->
?act_typ:Neuron.Activation.typ ->
int array array ->
node ->
node
val normalisation :
?name:string ->
?axis:int ->
?training:bool ->
?decay:float ->
?mu:Neuron.Optimise.Algodiff.A.arr ->
?var:Neuron.Optimise.Algodiff.A.arr ->
node ->
node
val lambda :
?name:string ->
?act_typ:Neuron.Activation.typ ->
?out_shape:int array ->
(Neuron.Optimise.Algodiff.t -> Neuron.Optimise.Algodiff.t) ->
node ->
node
val lambda_array :
?name:string ->
?act_typ:Neuron.Activation.typ ->
int array ->
(Neuron.Optimise.Algodiff.t array -> Neuron.Optimise.Algodiff.t) ->
node array ->
node
val add : ?name:string -> ?act_typ:Neuron.Activation.typ -> node array -> node
val mul : ?name:string -> ?act_typ:Neuron.Activation.typ -> node array -> node
val dot : ?name:string -> ?act_typ:Neuron.Activation.typ -> node array -> node
val max : ?name:string -> ?act_typ:Neuron.Activation.typ -> node array -> node
val average :
?name:string ->
?act_typ:Neuron.Activation.typ ->
node array ->
node
val concatenate :
?name:string ->
?act_typ:Neuron.Activation.typ ->
int ->
node array ->
node
val to_string : network -> string
val pp_network : Stdlib.Format.formatter -> network -> unit
val print : network -> unit
val save : ?unsafe:bool -> network -> string -> unit
val load : string -> network
val save_weights : network -> string -> unit
val load_weights : network -> string -> unit
val train_generic :
?state:Neuron.Optimise.Checkpoint.state ->
?params:Neuron.Optimise.Params.typ ->
?init_model:bool ->
network ->
Neuron.Optimise.Algodiff.t ->
Neuron.Optimise.Algodiff.t ->
Neuron.Optimise.Checkpoint.state
val train :
?state:Neuron.Optimise.Checkpoint.state ->
?params:Neuron.Optimise.Params.typ ->
?init_model:bool ->
network ->
Neuron.Optimise.Algodiff.A.arr ->
Neuron.Optimise.Algodiff.A.arr ->
Neuron.Optimise.Checkpoint.state