sig
  type typ =
      Relu
    | Sigmoid
    | Softmax
    | Tanh
    | Custom of (Owl_neural_neuron.t -> Owl_neural_neuron.t)
    | None
  type neuron_typ = {
    mutable activation : Owl_neural_neuron.Activation.typ;
    mutable in_shape : int array;
    mutable out_shape : int array;
  }
  val create :
    Owl_neural_neuron.Activation.typ ->
    Owl_neural_neuron.Activation.neuron_typ
  val connect : int array -> Owl_neural_neuron.Activation.neuron_typ -> unit
  val run_activation :
    Owl_algodiff.S.t -> Owl_neural_neuron.Activation.typ -> Owl_algodiff.S.t
  val run :
    Owl_algodiff.S.t ->
    Owl_neural_neuron.Activation.neuron_typ -> Owl_algodiff.S.t
  val activation_to_string : Owl_neural_neuron.Activation.typ -> string
  val to_string : Owl_neural_neuron.Activation.neuron_typ -> string
end