Library
Module
Module type
Parameter
Class
Class type
include Owl_types_computation_engine.Sig
module Graph : Owl_computation_graph_sig.Sig
Core evaluation functions of the engine
val eval_arr : Graph.Optimiser.Operator.Symbol.Shape.Type.arr array -> unit
TODO
val eval_elt : Graph.Optimiser.Operator.Symbol.Shape.Type.elt array -> unit
TODO
val eval_graph : Graph.graph -> unit
TODO
include Owl_computation_graph_sig.Sig
Type definition
Core functions
val shape_or_value : Optimiser.Operator.Symbol.Shape.Type.t -> string
TODO
val graph_to_dot : graph -> string
TODO
val graph_to_trace : graph -> string
TODO
val collect_rvs :
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array ->
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array
TODO
val invalidate_rvs : graph -> unit
TODO
val make_graph :
input:Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array ->
output:Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array ->
string ->
graph
TODO
val get_inputs :
graph ->
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array
TODO
val get_outputs :
graph ->
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array
TODO
val get_node_arr_val :
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node ->
Optimiser.Operator.Symbol.Shape.Type.Device.A.arr
TODO
val get_node_elt_val :
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node ->
Optimiser.Operator.Symbol.Shape.Type.Device.A.elt
TODO
val set_node_arr_val :
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node ->
Optimiser.Operator.Symbol.Shape.Type.Device.value ->
unit
TODO
val set_node_elt_val :
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node ->
Optimiser.Operator.Symbol.Shape.Type.Device.value ->
unit
TODO
val is_iopair_safe : 'a Owl_graph.node -> 'a Owl_graph.node -> bool
TODO
val make_iopair :
graph ->
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array ->
Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node array ->
unit
TODO
val update_iopair : graph -> unit
TODO
val remove_unused_iopair :
'a Owl_graph.node array ->
'b array ->
'a Owl_graph.node array * 'b array
TODO
val init_inputs :
(Optimiser.Operator.Symbol.Shape.Type.attr Owl_graph.node ->
Optimiser.Operator.Symbol.Shape.Type.Device.value) ->
graph ->
unit
TODO
val optimise : graph -> unit
TODO
include Owl_computation_optimiser_sig.Sig
module Operator : Owl_computation_operator_sig.Sig
Core functions
val estimate_complexity : 'a Owl_graph.node array -> int * int
TODO
val optimise_nodes :
Operator.Symbol.Shape.Type.attr Owl_graph.node array ->
unit
TODO
include Owl_computation_operator_sig.Sig
module Symbol : Owl_computation_symbol_sig.Sig
Vectorised functions
val noop : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val empty : int array -> Symbol.Shape.Type.arr
TODO
val zeros : int array -> Symbol.Shape.Type.arr
TODO
val ones : int array -> Symbol.Shape.Type.arr
TODO
val create : int array -> Symbol.Shape.Type.elt -> Symbol.Shape.Type.arr
TODO
val sequential :
?a:Symbol.Shape.Type.elt ->
?step:Symbol.Shape.Type.elt ->
int array ->
Symbol.Shape.Type.arr
TODO
val uniform :
?a:Symbol.Shape.Type.elt ->
?b:Symbol.Shape.Type.elt ->
int array ->
Symbol.Shape.Type.arr
TODO
val gaussian :
?mu:Symbol.Shape.Type.elt ->
?sigma:Symbol.Shape.Type.elt ->
int array ->
Symbol.Shape.Type.arr
TODO
val bernoulli : ?p:Symbol.Shape.Type.elt -> int array -> Symbol.Shape.Type.arr
TODO
val init : int array -> (int -> Symbol.Shape.Type.elt) -> Symbol.Shape.Type.arr
TODO
val init_nd :
int array ->
(int array -> Symbol.Shape.Type.elt) ->
Symbol.Shape.Type.arr
TODO
val shape : Symbol.Shape.Type.arr -> int array
TODO
val numel : Symbol.Shape.Type.arr -> int
TODO
val get : Symbol.Shape.Type.arr -> int array -> Symbol.Shape.Type.elt
TODO
val set : Symbol.Shape.Type.arr -> int array -> Symbol.Shape.Type.elt -> unit
TODO
val get_slice : int list list -> Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val set_slice :
int list list ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
unit
TODO
val copy : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val reset : Symbol.Shape.Type.arr -> unit
TODO
val reshape : Symbol.Shape.Type.arr -> int array -> Symbol.Shape.Type.arr
TODO
val reverse : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val tile : Symbol.Shape.Type.arr -> int array -> Symbol.Shape.Type.arr
TODO
val repeat : Symbol.Shape.Type.arr -> int array -> Symbol.Shape.Type.arr
TODO
val pad :
?v:Symbol.Shape.Type.elt ->
int list list ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val expand : ?hi:bool -> Symbol.Shape.Type.arr -> int -> Symbol.Shape.Type.arr
TODO
val squeeze : ?axis:int array -> Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val concatenate :
?axis:int ->
Symbol.Shape.Type.arr array ->
Symbol.Shape.Type.arr
TODO
val concat :
axis:int ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val draw :
?axis:int ->
Symbol.Shape.Type.arr ->
int ->
Symbol.Shape.Type.arr * 'a array
TODO
val map :
(Symbol.Shape.Type.elt -> Symbol.Shape.Type.elt) ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val fold :
?axis:int ->
(Symbol.Shape.Type.elt -> Symbol.Shape.Type.elt -> Symbol.Shape.Type.elt) ->
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val scan :
?axis:int ->
(Symbol.Shape.Type.elt -> Symbol.Shape.Type.elt -> Symbol.Shape.Type.elt) ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val one_hot : int -> Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val delay :
(Symbol.Shape.Type.Device.A.arr -> Symbol.Shape.Type.Device.A.arr) ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
``delay f x`` returns ``f x``. It allows to use a function that is not tracked by the computation graph and delay its evaluation. The output must have the same shape as the input.
val delay_array :
int array ->
(Symbol.Shape.Type.Device.A.arr array -> Symbol.Shape.Type.Device.A.arr) ->
Symbol.Shape.Type.arr array ->
Symbol.Shape.Type.arr
``delay_array out_shape f x`` works in the same way as ``delay`` but is applied on an array of ndarrays. Needs the shape of the output as an argument.
val lazy_print :
?max_row:int ->
?max_col:int ->
?header:bool ->
?fmt:(Symbol.Shape.Type.Device.A.elt -> string) ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
``lazy_print x`` prints the output of ``x`` when it is evaluated. Is implemented as an identity node. For information about the optional parameters, refer to the ``print`` function of the ``Ndarray`` module.
val abs : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val neg : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val floor : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val ceil : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val round : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val sqr : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val sqrt : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val log : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val log2 : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val log10 : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val exp : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val sin : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val cos : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val tan : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val sinh : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val cosh : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val tanh : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val asin : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val acos : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val atan : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val asinh : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val acosh : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val atanh : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val min : ?axis:int -> Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val max : ?axis:int -> Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val sum : ?axis:int -> Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val sum_reduce :
?axis:int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val signum : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val sigmoid : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val relu : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val dawsn : Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val min' : Symbol.Shape.Type.arr -> Symbol.Shape.Type.elt
TODO
val max' : Symbol.Shape.Type.arr -> Symbol.Shape.Type.elt
TODO
val sum' : Symbol.Shape.Type.arr -> Symbol.Shape.Type.elt
TODO
val l1norm' : Symbol.Shape.Type.arr -> Symbol.Shape.Type.elt
TODO
val l2norm' : Symbol.Shape.Type.arr -> Symbol.Shape.Type.elt
TODO
val l2norm_sqr' : Symbol.Shape.Type.arr -> Symbol.Shape.Type.elt
TODO
val clip_by_value :
?amin:Symbol.Shape.Type.elt ->
?amax:Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val clip_by_l2norm :
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val pow :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val scalar_pow :
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val pow_scalar :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr
TODO
val atan2 :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val scalar_atan2 :
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val atan2_scalar :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr
TODO
val hypot :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val min2 :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val max2 :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val add :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val sub :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val mul :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val div :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val add_scalar :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr
TODO
val sub_scalar :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr
TODO
val mul_scalar :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr
TODO
val div_scalar :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr
TODO
val scalar_add :
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val scalar_sub :
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val scalar_mul :
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val scalar_div :
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val fma :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val elt_equal :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val elt_not_equal :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val elt_less :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val elt_greater :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val elt_less_equal :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val elt_greater_equal :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val elt_equal_scalar :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr
TODO
val elt_not_equal_scalar :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr
TODO
val elt_less_scalar :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr
TODO
val elt_greater_scalar :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr
TODO
val elt_less_equal_scalar :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr
TODO
val elt_greater_equal_scalar :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.elt ->
Symbol.Shape.Type.arr
TODO
val conv1d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr
TODO
val conv2d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr
TODO
val conv3d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr
TODO
val transpose_conv1d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr
TODO
val transpose_conv2d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr
TODO
val transpose_conv3d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr
TODO
val dilated_conv1d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr
TODO
val dilated_conv2d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr
TODO
val dilated_conv3d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr
TODO
val max_pool1d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr
TODO
val max_pool2d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr
TODO
val max_pool3d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr
TODO
val avg_pool1d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr
TODO
val avg_pool2d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr
TODO
val avg_pool3d :
?padding:Owl_types.padding ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr
TODO
val upsampling2d : Symbol.Shape.Type.arr -> int array -> Symbol.Shape.Type.arr
TODO
val conv1d_backward_input :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val conv1d_backward_kernel :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val conv2d_backward_input :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val conv2d_backward_kernel :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val conv3d_backward_input :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val conv3d_backward_kernel :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val transpose_conv1d_backward_input :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val transpose_conv1d_backward_kernel :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val transpose_conv2d_backward_input :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val transpose_conv2d_backward_kernel :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val transpose_conv3d_backward_input :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val transpose_conv3d_backward_kernel :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val dilated_conv1d_backward_input :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val dilated_conv1d_backward_kernel :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val dilated_conv2d_backward_input :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val dilated_conv2d_backward_kernel :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val dilated_conv3d_backward_input :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val dilated_conv3d_backward_kernel :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val max_pool1d_backward :
Owl_types.padding ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val max_pool2d_backward :
Owl_types.padding ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val max_pool3d_backward :
Owl_types.padding ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val avg_pool1d_backward :
Owl_types.padding ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val avg_pool2d_backward :
Owl_types.padding ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val avg_pool3d_backward :
Owl_types.padding ->
Symbol.Shape.Type.arr ->
int array ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val upsampling2d_backward :
Symbol.Shape.Type.arr ->
int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val row_num : Symbol.Shape.Type.arr -> int
TODO
val col_num : Symbol.Shape.Type.arr -> int
TODO
val row : Symbol.Shape.Type.arr -> 'a -> Symbol.Shape.Type.arr
TODO
val rows : Symbol.Shape.Type.arr -> int array -> Symbol.Shape.Type.arr
TODO
val copy_row_to : Symbol.Shape.Type.arr -> 'a -> 'b -> unit
TODO
val copy_col_to : Symbol.Shape.Type.arr -> 'a -> 'b -> unit
TODO
val diag : ?k:int -> Symbol.Shape.Type.arr -> Symbol.Shape.Type.arr
TODO
val trace : Symbol.Shape.Type.arr -> Symbol.Shape.Type.elt
TODO
val dot :
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val transpose :
?axis:int array ->
Symbol.Shape.Type.arr ->
Symbol.Shape.Type.arr
TODO
val to_rows : Symbol.Shape.Type.arr -> 'a array
TODO
val of_rows : Symbol.Shape.Type.arr array -> Symbol.Shape.Type.arr
TODO
val to_cols : Symbol.Shape.Type.arr -> 'a array
TODO
val of_cols : Symbol.Shape.Type.arr array -> Symbol.Shape.Type.arr
TODO
val of_array :
Symbol.Shape.Type.elt array ->
int array ->
Symbol.Shape.Type.arr
TODO
val of_arrays : Symbol.Shape.Type.elt array array -> Symbol.Shape.Type.arr
TODO
val to_arrays : Symbol.Shape.Type.arr -> Symbol.Shape.Type.elt array array
TODO
Scalar functions
module Scalar : sig ... end
module Mat : sig ... end
module Linalg : sig ... end
include Owl_computation_symbol_sig.Sig
module Shape : Owl_computation_shape_sig.Sig
Core functions
val op_to_str : Shape.Type.op -> string
TODO
val is_random_variable : Shape.Type.op -> bool
TODO
val refnum : 'a Owl_graph.node -> int
TODO
val node_shape : Shape.Type.attr Owl_graph.node -> int array
TODO
val node_numel : Shape.Type.attr Owl_graph.node -> int
TODO
val is_shape_unknown : Shape.Type.attr Owl_graph.node -> bool
TODO
val infer_shape_graph : Shape.Type.attr Owl_graph.node array -> unit
TODO
val node_to_str : Shape.Type.attr Owl_graph.node -> string
TODO
val node_to_arr : Shape.Type.t -> Shape.Type.arr
TODO
val arr_to_node : Shape.Type.arr -> Shape.Type.t
TODO
val node_to_elt : Shape.Type.t -> Shape.Type.elt
TODO
val elt_to_node : Shape.Type.elt -> Shape.Type.t
TODO
val make_node :
?name:string ->
?value:Shape.Type.Device.value array ->
?shape:int array option array ->
?freeze:bool ->
?reuse:bool ->
?state:Shape.Type.state ->
Shape.Type.op ->
Shape.Type.attr Owl_graph.node
TODO
val make_then_connect :
?shape:int array option array ->
Shape.Type.op ->
Shape.Type.attr Owl_graph.node array ->
Shape.Type.attr Owl_graph.node
TODO
val var_arr : ?shape:int array -> string -> Shape.Type.arr
TODO
val var_elt : string -> Shape.Type.elt
TODO
val const_arr : string -> Shape.Type.Device.A.arr -> Shape.Type.arr
TODO
val const_elt : string -> Shape.Type.Device.A.elt -> Shape.Type.elt
TODO
val make_empty_block : ?block_id:int -> int -> Shape.Type.block
``make_empty_block s`` returns an empty block of memory of size ``s``.
val make_value_block :
Shape.Type.Device.value ->
Shape.Type.attr Owl_graph.node ->
unit
``make_value_block value node`` creates a block of memory initialised with ``value`` and links the new block to ``node``.
val get_block : Shape.Type.attr Owl_graph.node -> Shape.Type.block array
``get_block node`` returns the memory block allocated to ``node``. If no block is allocated, throws an exception.
val add_node_to_block :
Shape.Type.attr Owl_graph.node ->
Shape.Type.block ->
unit
Link a node to a reusable block and initialises its memory on the memory of the block.
val get_active_node : Shape.Type.block -> Shape.Type.attr Owl_graph.node option
Return the node that is currently using the memory of the block.
val set_active_node :
Shape.Type.block ->
Shape.Type.attr Owl_graph.node ->
unit
Update the node that is currently using the block of memory.
val get_block_id : Shape.Type.attr Owl_graph.node -> int
``get_block_id node`` returns the id of the block assigned to ``node``. If ``node`` has not been assigned yet, returns ``-1``.
val set_value :
Shape.Type.attr Owl_graph.node ->
Shape.Type.Device.value array ->
unit
TODO
val get_value : Shape.Type.attr Owl_graph.node -> Shape.Type.Device.value array
TODO
val set_operator : Shape.Type.attr Owl_graph.node -> Shape.Type.op -> unit
TODO
val get_operator : Shape.Type.attr Owl_graph.node -> Shape.Type.op
TODO
val set_reuse : Shape.Type.attr Owl_graph.node -> bool -> unit
TODO
val get_reuse : Shape.Type.attr Owl_graph.node -> bool
TODO
TODO
``get_shared_nodes node`` returns the nodes sharing the same block of memory as ``node``.
val is_var : Shape.Type.attr Owl_graph.node -> bool
TODO
val is_const : Shape.Type.attr Owl_graph.node -> bool
TODO
val is_node_arr : Shape.Type.attr Owl_graph.node -> bool
TODO
val is_node_elt : Shape.Type.attr Owl_graph.node -> bool
TODO
val is_assigned : Shape.Type.attr Owl_graph.node -> bool
``is_assigned node`` checks if a block of memory has been assigned to ``node``.
val check_assigned : Shape.Type.attr Owl_graph.node -> unit
``check_assigned node`` throws an exception if ``node`` has not been assigned to a block.
val is_valid : Shape.Type.attr Owl_graph.node -> bool
TODO
val validate : Shape.Type.attr Owl_graph.node -> unit
TODO
val invalidate : Shape.Type.attr Owl_graph.node -> unit
TODO
val invalidate_graph : Shape.Type.attr Owl_graph.node -> unit
TODO
val is_freeze : Shape.Type.attr Owl_graph.node -> bool
TODO
val freeze : Shape.Type.attr Owl_graph.node -> unit
TODO
val freeze_descendants : Shape.Type.attr Owl_graph.node array -> unit
TODO
val freeze_ancestors : Shape.Type.attr Owl_graph.node array -> unit
TODO
val pack_arr : Shape.Type.Device.A.arr -> Shape.Type.arr
TODO
val unpack_arr : Shape.Type.arr -> Shape.Type.Device.A.arr
TODO
val pack_elt : Shape.Type.Device.A.elt -> Shape.Type.elt
TODO
val unpack_elt : Shape.Type.elt -> Shape.Type.Device.A.elt
TODO
val unsafe_assign_arr : Shape.Type.arr -> Shape.Type.Device.A.arr -> unit
TODO
val assign_arr : Shape.Type.arr -> Shape.Type.Device.A.arr -> unit
TODO
val assign_elt : Shape.Type.elt -> Shape.Type.Device.A.elt -> unit
TODO
val float_to_elt : float -> Shape.Type.elt
TODO
val elt_to_float : Shape.Type.elt -> float
TODO
include Owl_computation_shape_sig.Sig
module Type : Owl_computation_type_sig.Sig
Core functions
val infer_shape :
Type.op ->
Type.attr Owl_graph.node array ->
int array option array
TODO
include Owl_computation_type_sig.Sig
module Device : Owl_types_computation_device.Sig
Type definition
type t = attr Owl_graph.node
TODO
and block = {
size : int;
block_id : int;
mutable active : t option;
mutable memory : Device.value;
mutable nodes : t list;
}
``block`` type keeps a reference to a block of memory and to the nodes sharing that block.
and attr = {
mutable op : op;
mutable freeze : bool;
mutable reuse : bool;
mutable state : state;
mutable shape : int array option array;
mutable value : Device.value array;
mutable block : block array option;
}
TODO
and op =
| Noop
| Var
| Const
| Empty of int array
| Zeros of int array
| Ones of int array
| Create of int array
| Sequential of int array
| Uniform of int array
| Gaussian of int array
| Bernoulli of int array
| Init of int array * int -> elt
| Get of int array
| Set of int array
| GetSlice of int list list
| SetSlice of int list list
| Copy
| Reset
| Reshape of int array
| Reverse
| Tile of int array
| Repeat of int array
| Pad of elt * int list list
| Concatenate of int
| Split of int * int array
| Draw of int * int
| Map of elt -> elt
| Fold of int * elt -> elt -> elt
| Scan of int * elt -> elt -> elt
| OneHot of int
| OfArray of int array
| Delay of Device.A.arr -> Device.A.arr
| DelayArray of int array * Device.A.arr array -> Device.A.arr
| LazyPrint of int option * int option * bool option * (Device.A.elt -> string) option
| Abs
| Neg
| Floor
| Ceil
| Round
| Sqr
| Sqrt
| Log
| Log2
| Log10
| Exp
| Sin
| Cos
| Tan
| Sinh
| Cosh
| Tanh
| Asin
| Acos
| Atan
| Asinh
| Acosh
| Atanh
| Min of int
| Max of int
| Sum of int
| SumReduce of int array
| Signum
| Sigmoid
| Relu
| Dawsn
| Min'
| Max'
| Sum'
| L1norm'
| L2norm'
| L2NormSqr'
| ClipByValue
| ClipByL2norm
| Pow
| ScalarPow
| PowScalar
| Atan2
| ScalarAtan2
| Atan2Scalar
| Hypot
| Min2
| Max2
| Add
| Sub
| Mul
| Div
| AddScalar
| SubScalar
| MulScalar
| DivScalar
| ScalarAdd
| ScalarSub
| ScalarMul
| ScalarDiv
| FMA
| EltEqual
| EltNotEqual
| EltLess
| EltGreater
| EltLessEqual
| EltGreaterEqual
| EltEqualScalar
| EltNotEqualScalar
| EltLessScalar
| EltGreaterScalar
| EltLessEqualScalar
| EltGreaterEqualScalar
| Conv1d of Owl_types.padding * int array
| Conv2d of Owl_types.padding * int array
| Conv3d of Owl_types.padding * int array
| TransposeConv1d of Owl_types.padding * int array
| TransposeConv2d of Owl_types.padding * int array
| TransposeConv3d of Owl_types.padding * int array
| DilatedConv1d of Owl_types.padding * int array * int array
| DilatedConv2d of Owl_types.padding * int array * int array
| DilatedConv3d of Owl_types.padding * int array * int array
| MaxPool1d of Owl_types.padding * int array * int array
| MaxPool2d of Owl_types.padding * int array * int array
| MaxPool3d of Owl_types.padding * int array * int array
| AvgPool1d of Owl_types.padding * int array * int array
| AvgPool2d of Owl_types.padding * int array * int array
| AvgPool3d of Owl_types.padding * int array * int array
| UpSampling2d of int array
| Conv1dBackwardInput of int array
| Conv1dBackwardKernel of int array
| Conv2dBackwardInput of int array
| Conv2dBackwardKernel of int array
| Conv3dBackwardInput of int array
| Conv3dBackwardKernel of int array
| TransposeConv1dBackwardInput of int array
| TransposeConv1dBackwardKernel of int array
| TransposeConv2dBackwardInput of int array
| TransposeConv2dBackwardKernel of int array
| TransposeConv3dBackwardInput of int array
| TransposeConv3dBackwardKernel of int array
| DilatedConv1dBackwardInput of int array * int array
| DilatedConv1dBackwardKernel of int array * int array
| DilatedConv2dBackwardInput of int array * int array
| DilatedConv2dBackwardKernel of int array * int array
| DilatedConv3dBackwardInput of int array * int array
| DilatedConv3dBackwardKernel of int array * int array
| MaxPool1dBackward of Owl_types.padding * int array * int array
| MaxPool2dBackward of Owl_types.padding * int array * int array
| MaxPool3dBackward of Owl_types.padding * int array * int array
| AvgPool1dBackward of Owl_types.padding * int array * int array
| AvgPool2dBackward of Owl_types.padding * int array * int array
| AvgPool3dBackward of Owl_types.padding * int array * int array
| UpSampling2dBackward of int array
| RowNum
| ColNum
| Row
| Rows of int array
| CopyRowTo
| CopyColTo
| Dot of bool * bool * elt * elt
| Inv
| Trace
| Transpose of int array
| ToRows
| OfRows
| Scalar_Add
| Scalar_Sub
| Scalar_Mul
| Scalar_Div
| Scalar_Pow
| Scalar_Atan2
| Scalar_Abs
| Scalar_Neg
| Scalar_Sqr
| Scalar_Sqrt
| Scalar_Exp
| Scalar_Log
| Scalar_Log2
| Scalar_Log10
| Scalar_Signum
| Scalar_Floor
| Scalar_Ceil
| Scalar_Round
| Scalar_Sin
| Scalar_Cos
| Scalar_Tan
| Scalar_Sinh
| Scalar_Cosh
| Scalar_Tanh
| Scalar_Asin
| Scalar_Acos
| Scalar_Atan
| Scalar_Asinh
| Scalar_Acosh
| Scalar_Atanh
| Scalar_Relu
| Scalar_Dawsn
| Scalar_Sigmoid
| Fused_Adagrad of float * float
(*TODO
*)
include Owl_types_computation_device.Sig
module A : Owl_types_ndarray_mutable.Sig
Type definition
Core functions
val make_device : unit -> device
TODO
val value_to_float : value -> float
TODO
val is_arr : value -> bool
TODO
val is_elt : value -> bool
TODO
val number : Owl_types_common.number