AI

Trait AI 

Source
pub trait AI<X, Y> {
    // Required method
    fn forward(&self, input: X) -> Y;

    // Provided method
    fn forward_mut(&mut self, input: X) -> Y { ... }
}
Expand description

general ai trait

Required Methods§

Source

fn forward(&self, input: X) -> Y

applies to the input

Provided Methods§

Source

fn forward_mut(&mut self, input: X) -> Y

applies to the input, possibly updating internal caches

Implementations on Foreign Types§

Source§

impl<A: AI<X, X>, X> AI<X, X> for Option<A>

Source§

fn forward(&self, x: X) -> X

Source§

fn forward_mut(&mut self, x: X) -> X

Source§

impl<A: ?Sized + AI<X, Y>, X, Y> AI<X, Y> for &A

Source§

fn forward(&self, input: X) -> Y

Source§

impl<A: ?Sized + AI<X, Y>, X, Y> AI<X, Y> for &mut A

Source§

fn forward(&self, input: X) -> Y

Source§

fn forward_mut(&mut self, input: X) -> Y

Source§

impl<B: Backend> AI<(Value<B>, Value<B>), Value<B>> for CrossEntropyLoss<B>

Source§

fn forward(&self, (output, target): (Value<B>, Value<B>)) -> Value<B>

Source§

impl<B: Backend> AI<(Value<B>, usize), (Value<B>, usize)> for RotaryEncoding<B>

Source§

fn forward(&self, (input, offset): (Value<B>, usize)) -> (Value<B>, usize)

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for Relu

Source§

fn forward(&self, input: Value<B>) -> Value<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for Tanh

Source§

fn forward(&self, input: Value<B>) -> Value<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for CrossEntropyLoss<B>

Source§

fn forward(&self, input: Value<B>) -> Value<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for MseLoss

Source§

fn forward(&self, input: Value<B>) -> Value<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for Conv2d<B>

Source§

fn forward(&self, input: Value<B>) -> Value<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for Dropout

Source§

fn forward(&self, input: Value<B>) -> Value<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for Embedding<B>

Source§

fn forward(&self, input: Value<B>) -> Value<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for Linear<B>

Source§

fn forward(&self, input: Value<B>) -> Value<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for BatchNorm<B>

Source§

fn forward(&self, input: Value<B>) -> Value<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for LayerNorm<B>

Source§

fn forward(&self, input: Value<B>) -> Value<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for MaxPool2d

Source§

fn forward(&self, input: Value<B>) -> Value<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for RotaryEncoding<B>

Source§

fn forward(&self, input: Value<B>) -> Value<B>

Source§

impl<X: Into<Y>, Y> AI<X, Y> for ()

Source§

fn forward(&self, input: X) -> Y

Implementors§

Source§

impl AI<(Vec<f32>, u32), f32> for CrossEntropyLayer

Source§

impl AI<(Vec<f32>, Vec<f32>), f32> for SquaredErrorLayer

Source§

impl AI<(Vec<f32>, Vec<f32>), f32> for CrossEntropyLayer

Source§

impl AI<(Vec<f32>, Vec<f32>), Vec<f32>> for SquaredErrorLayer

Source§

impl AI<f32, f32> for MeanLayer

Source§

impl AI<f32, f32> for SumLayer

Source§

impl AI<Vec<f32>, f32> for MeanLayer

Source§

impl AI<Vec<f32>, f32> for SumLayer

Source§

impl AI<Vec<f32>, Vec<f32>> for AccQLayer

Source§

impl AI<Vec<f32>, Vec<f32>> for AbnormalSoftmaxLayer

Source§

impl AI<Vec<f32>, Vec<f32>> for LogSoftmaxLayer

Source§

impl AI<Vec<f32>, Vec<f32>> for SoftmaxLayer

Source§

impl<A: AI<Vec<X>, Vec<Y>>, X, Y> AI<X, Y> for Unvec<A>

Source§

impl<A: AI<K, S>, K, S, B: AI<L, T>, L, T, C: AI<M, U>, M, U, D: AI<N, V>, N, V, E: AI<O, W>, O, W, F: AI<P, X>, P, X, G: AI<Q, Y>, Q, Y, H: AI<R, Z>, R, Z> AI<(K, L, M, N, O, P, Q, R), (S, T, U, V, W, X, Y, Z)> for Zip<(A, B, C, D, E, F, G, H)>

Source§

impl<A: AI<M, T>, M, T, B: AI<N, U>, N, U, C: AI<O, V>, O, V, D: AI<P, W>, P, W, E: AI<Q, X>, Q, X, F: AI<R, Y>, R, Y, G: AI<S, Z>, S, Z> AI<(M, N, O, P, Q, R, S), (T, U, V, W, X, Y, Z)> for Zip<(A, B, C, D, E, F, G)>

Source§

impl<A: AI<O, U>, O, U, B: AI<P, V>, P, V, C: AI<Q, W>, Q, W, D: AI<R, X>, R, X, E: AI<S, Y>, S, Y, F: AI<T, Z>, T, Z> AI<(O, P, Q, R, S, T), (U, V, W, X, Y, Z)> for Zip<(A, B, C, D, E, F)>

Source§

impl<A: AI<Q, V>, Q, V, B: AI<R, W>, R, W, C: AI<S, X>, S, X, D: AI<T, Y>, T, Y, E: AI<U, Z>, U, Z> AI<(Q, R, S, T, U), (V, W, X, Y, Z)> for Zip<(A, B, C, D, E)>

Source§

impl<A: AI<R, S> + Op<Output = S>, B: AI<S, T> + Op<Output = T>, C: AI<T, U> + Op<Output = U>, D: AI<U, V> + Op<Output = V>, E: AI<V, W> + Op<Output = W>, F: AI<W, X> + Op<Output = X>, G: AI<X, Y> + Op<Output = Y>, H: AI<Y, Z>, R, S, T, U, V, W, X, Y, Z> AI<R, Z> for Sequential<(A, B, C, D, E, F, G, H)>

Source§

impl<A: AI<S, T> + Op<Output = T>, B: AI<T, U> + Op<Output = U>, C: AI<U, V> + Op<Output = V>, D: AI<V, W> + Op<Output = W>, E: AI<W, X> + Op<Output = X>, F: AI<X, Y> + Op<Output = Y>, G: AI<Y, Z>, S, T, U, V, W, X, Y, Z> AI<S, Z> for Sequential<(A, B, C, D, E, F, G)>

Source§

impl<A: AI<S, W>, S, W, B: AI<T, X>, T, X, C: AI<U, Y>, U, Y, D: AI<V, Z>, V, Z> AI<(S, T, U, V), (W, X, Y, Z)> for Zip<(A, B, C, D)>

Source§

impl<A: AI<T, U> + Op<Output = U>, B: AI<U, V> + Op<Output = V>, C: AI<V, W> + Op<Output = W>, D: AI<W, X> + Op<Output = X>, E: AI<X, Y> + Op<Output = Y>, F: AI<Y, Z>, T, U, V, W, X, Y, Z> AI<T, Z> for Sequential<(A, B, C, D, E, F)>

Source§

impl<A: AI<U, V> + Op<Output = V>, B: AI<V, W> + Op<Output = W>, C: AI<W, X> + Op<Output = X>, D: AI<X, Y> + Op<Output = Y>, E: AI<Y, Z>, U, V, W, X, Y, Z> AI<U, Z> for Sequential<(A, B, C, D, E)>

Source§

impl<A: AI<U, X>, U, X, B: AI<V, Y>, V, Y, C: AI<W, Z>, W, Z> AI<(U, V, W), (X, Y, Z)> for Zip<(A, B, C)>

Source§

impl<A: AI<V, W> + Op<Output = W>, B: AI<W, X> + Op<Output = X>, C: AI<X, Y> + Op<Output = Y>, D: AI<Y, Z>, V, W, X, Y, Z> AI<V, Z> for Sequential<(A, B, C, D)>

Source§

impl<A: AI<W, X> + Op<Output = X>, B: AI<X, Y> + Op<Output = Y>, C: AI<Y, Z>, W, X, Y, Z> AI<W, Z> for Sequential<(A, B, C)>

Source§

impl<A: AI<W, Y>, W, Y, B: AI<X, Z>, X, Z> AI<(W, X), (Y, Z)> for Zip<(A, B)>

Source§

impl<A: AI<W, Z> + AI<X, Y>, W, X, Y, Z> AI<W, Z> for SetType<A, X, Y>

Source§

impl<A: AI<X, LossOutput<B>>, B: Backend, X> AI<X, ClassificationOutput<B>> for Classification<A>

Source§

impl<A: AI<X, LossOutput<B>>, B: Backend, X> AI<X, RegressionOutput<B>> for Regression<A>

Source§

impl<A: AI<X, L> + Op<Output = L>, L, R, X, Y> AI<(X, R), Y> for Add<A>
where AddLayer: AI<(L, R), Y>,

Source§

impl<A: AI<X, L> + Op<Output = L>, L, R, X, Y> AI<(X, R), Y> for Mul<A>
where MulLayer: AI<(L, R), Y>,

Source§

impl<A: AI<X, L> + Op<Output = L>, L, R, X, Y> AI<(X, R), Y> for SquaredError<A>

Source§

impl<A: AI<X, X>, X> AI<X, X> for Sequential<&[A]>

Source§

impl<A: AI<X, X>, X> AI<X, X> for Sequential<&mut [A]>

Source§

impl<A: AI<X, X>, X> AI<X, X> for Sequential<Vec<A>>

Source§

impl<A: AI<X, Y> + Op<Output = Y>, B: AI<Y, Z>, X, Y, Z> AI<X, Z> for Sequential<(A, B)>

Source§

impl<A: AI<X, Y> + Op<Output = Y>, I: IntoIterator<Item = X>, J: FromIterator<Y>, X, Y> AI<I, J> for Map<A>

Source§

impl<A: AI<X, Y> + Op<Output = Y>, R: Clone, X, Y, Z> AI<X, Z> for Flatten<A, R>
where FlattenLayer<R>: AI<Y, Z>,

Source§

impl<A: AI<X, Y> + Op<Output = Y>, R: Clone, X, Y, Z> AI<X, Z> for Reshape<A, R>
where ReshapeLayer<R>: AI<Y, Z>,

Source§

impl<A: AI<X, Y> + Op<Output = Y>, T, X, Y, Z> AI<(X, T), Z> for CrossEntropy<A>

Source§

impl<A: AI<X, Y> + Op<Output = Y>, X, Y, Z> AI<X, Z> for Abs<A>
where AbsLayer: AI<Y, Z>,

Source§

impl<A: AI<X, Y> + Op<Output = Y>, X, Y, Z> AI<X, Z> for Mean<A>
where MeanLayer: AI<Y, Z>,

Source§

impl<A: AI<X, Y> + Op<Output = Y>, X, Y, Z> AI<X, Z> for Neg<A>
where NegLayer: AI<Y, Z>,

Source§

impl<A: AI<X, Y> + Op<Output = Y>, X, Y, Z> AI<X, Z> for Sum<A>
where SumLayer: AI<Y, Z>,

Source§

impl<A: AI<X, Y> + Op<Output = Y>, X, Y, Z> AI<X, Z> for AbnormalSoftmax<A>
where AbnormalSoftmaxLayer: AI<Y, Z>,

Source§

impl<A: AI<X, Y> + Op<Output = Y>, X, Y, Z> AI<X, Z> for Choose<A>
where ChooseLayer: AI<Y, Z>,

Source§

impl<A: AI<X, Y> + Op<Output = Y>, X, Y, Z> AI<X, Z> for LogSoftmax<A>
where LogSoftmaxLayer: AI<Y, Z>,

Source§

impl<A: AI<X, Y> + Op<Output = Y>, X, Y, Z> AI<X, Z> for Softmax<A>
where SoftmaxLayer: AI<Y, Z>,

Source§

impl<A: AI<X, Y> + Op<Output = Y>, X, Y, Z> AI<X, Z> for Cat<A>
where CatLayer: AI<Y, Z>,

Source§

impl<A: AI<X, Y> + Op<Output = Y>, X, Y, Z> AI<X, Z> for Squeeze<A>
where SqueezeLayer: AI<Y, Z>,

Source§

impl<A: AI<X, Y> + Op<Output = Y>, X, Y, Z> AI<X, Z> for Stack<A>
where StackLayer: AI<Y, Z>,

Source§

impl<A: AI<X, Y> + Op<Output = Y>, X, Y, Z> AI<X, Z> for Unsqueeze<A>
where UnsqueezeLayer: AI<Y, Z>,

Source§

impl<A: AI<X, Y> + Op<Output = Y>, X: Clone + OpsAdd<Y, Output = Z>, Y: Into<Z>, Z> AI<X, Z> for Residual<A>

Source§

impl<A: AI<X, Y>, X, Y> AI<X, Y> for AccQ<A>
where AccQLayer: AI<Y, Y>,

Source§

impl<A: AI<X, Y>, X, Y> AI<X, Y> for Inner<A>

Source§

impl<A: AI<X, Y>, X, Y: Clone> AI<X, (Y, Y)> for Duplicate<A>

Source§

impl<A: AI<X, Y>, X, Y: Clone> AI<X, (Y, Y, Y)> for Duplicate<A>

Source§

impl<A: AI<X, Y>, X, Y: Clone> AI<X, (Y, Y, Y, Y)> for Duplicate<A>

Source§

impl<A: AI<X, Y>, X, Y: Clone> AI<X, (Y, Y, Y, Y, Y)> for Duplicate<A>

Source§

impl<A: AI<X, Y>, X, Y: Clone> AI<X, (Y, Y, Y, Y, Y, Y)> for Duplicate<A>

Source§

impl<A: AI<X, Y>, X, Y: Clone> AI<X, (Y, Y, Y, Y, Y, Y, Y)> for Duplicate<A>

Source§

impl<A: AI<X, Y>, X, Y: Clone> AI<X, (Y, Y, Y, Y, Y, Y, Y, Y)> for Duplicate<A>

Source§

impl<A: AI<X, Y>, X, Y: Clone, const N: usize> AI<X, [Y; N]> for Duplicate<A>

Source§

impl<B: Backend> AI<(Value<B>, Value<B>), Value<B>> for SquaredErrorLayer

Source§

impl<B: Backend> AI<(Value<B>, Value<B>), Value<B>> for CrossEntropyLayer

Source§

impl<B: Backend> AI<(Value<B>, Value<B>), f32> for SquaredErrorLayer

Source§

impl<B: Backend> AI<(Value<B>, Value<B>), LossOutput<B>> for SquaredErrorLayer

Source§

impl<B: Backend> AI<(Value<B>, Value<B>), LossOutput<B>> for CrossEntropyLayer

Source§

impl<B: Backend> AI<(Value<B>, Value<B>), Vec<f32>> for SquaredErrorLayer

Source§

impl<B: Backend> AI<(Value<B>, Value<B>), Vec<f32>> for CrossEntropyLayer

Source§

impl<B: Backend> AI<(Value<B>, Value<B>, Value<B>), Value<B>> for Attention<B>

Source§

impl<B: Backend> AI<Value<B>, (Value<B>, Value<B>, Value<B>)> for KQV<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for Layer<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for MeanLayer

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for SquaredErrorLayer

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for SumLayer

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for AccQLayer

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for ChooseLayer

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for CrossEntropyLayer

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for SoftmaxLayer

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for Attention<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for Cache<B>

Source§

impl<B: Backend> AI<Value<B>, Value<B>> for KQV<B>

Source§

impl<B: Backend> AI<Value<B>, f32> for MeanLayer

Source§

impl<B: Backend> AI<Value<B>, f32> for SumLayer

Source§

impl<B: Backend> AI<Value<B>, u32> for ChooseLayer

Source§

impl<B: Backend> AI<Value<B>, Vec<u32>> for ChooseLayer

Source§

impl<B: Backend> AI<Value<B>, Tensor<B, 1>> for MeanLayer

Source§

impl<B: Backend> AI<Value<B>, Tensor<B, 1>> for SumLayer

Source§

impl<B: Backend> AI<LossOutput<B>, ClassificationOutput<B>> for ClassificationLayer

Source§

impl<B: Backend> AI<LossOutput<B>, RegressionOutput<B>> for RegressionLayer

Source§

impl<B: Backend, X: Into<Y>, Y> AI<X, Y> for Identity<B>

Source§

impl<C: AI<V, V> + Op<Output = V>, V: Clone + Default + Merge> AI<Vec<V>, Vec<V>> for Graph<C>

Source§

impl<C: AI<V, V> + Op<Output = V>, V: Clone + Default + Merge, S: BuildHasher> AI<HashMap<Label, V, S>, HashMap<Label, V, S>> for Graph<C>

Source§

impl<F: Fn(X) -> Y, X, Y> AI<X, Y> for Apply<F, X, Y>

Source§

impl<L: OpsAdd<R>, R, Y> AI<(L, R), Y> for AddLayer
where L::Output: Into<Y>,

Source§

impl<L: OpsMul<R>, R, Y> AI<(L, R), Y> for MulLayer
where L::Output: Into<Y>,

Source§

impl<W: AI<X, Y> + Wrappable, X, Y> AI<X, Y> for Wrapped<W>

Source§

impl<X: OpsNeg, Y> AI<X, Y> for NegLayer
where X::Output: Into<Y>,

Source§

impl<X: OpsAbs, Y> AI<X, Y> for AbsLayer
where X::Output: Into<Y>,

Source§

impl<X: Cat, Y> AI<X, Y> for CatLayer
where X::Output: Into<Y>,

Source§

impl<X: Flatten<R>, R: Clone, Y> AI<X, Y> for FlattenLayer<R>
where X::Output: Into<Y>,

Source§

impl<X: Reshape<R>, R: Clone, Y> AI<X, Y> for ReshapeLayer<R>
where X::Output: Into<Y>,

Source§

impl<X: Squeeze, Y> AI<X, Y> for SqueezeLayer
where X::Output: Into<Y>,

Source§

impl<X: Stack, Y> AI<X, Y> for StackLayer
where X::Output: Into<Y>,

Source§

impl<X: Unsqueeze, Y> AI<X, Y> for UnsqueezeLayer
where X::Output: Into<Y>,