pub use self::dense::Dense;
mod dense;
pub use self::rnn::RNN;
mod rnn;
use af::Array;
use params::Params;
use std::sync::{Arc, Mutex};
pub trait Layer {
fn forward(&self, params: Arc<Mutex<Params>>, inputs: &Array) -> Array;
fn backward(&self, params: Arc<Mutex<Params>>, delta: &Array) -> Array;
}
pub trait RecurrentLayer: Layer {
fn new(input_size: u64, output_size: u64
, inner_activation: &str, outer_activation: &str
, w_init: &str, b_init: &str) -> Self where Self: Sized;
}
pub trait RTRL{
fn rtrl(&self, dW_tm1: &mut Array , dU_tm1: &mut Array , db_tm1: &mut Array , z_t: &Array , inputs: &Array); }