Search in sources :

Example 56 with Pair

use of org.nd4j.linalg.primitives.Pair in project nd4j by deeplearning4j.

the class ActivationELU method backprop.

/*
             = alpha * exp(x) ; x < 0
       f'(x)
             = 1 ; x >= 0
     */
@Override
public Pair<INDArray, INDArray> backprop(INDArray in, INDArray epsilon) {
    // no support in ELU native to override alpha
    if (alpha != 1.00) {
        INDArray dLdz = Nd4j.getExecutioner().execAndReturn(new ELUDerivative(in.dup()));
        dLdz.muli(alpha);
        BooleanIndexing.replaceWhere(dLdz, 1, Conditions.equals(alpha));
        dLdz.muli(epsilon);
        return new Pair<>(dLdz, null);
    } else {
        INDArray dLdz = Nd4j.getExecutioner().execAndReturn(new ELUDerivative(in));
        dLdz.muli(epsilon);
        return new Pair<>(dLdz, null);
    }
}
Also used : INDArray(org.nd4j.linalg.api.ndarray.INDArray) ELUDerivative(org.nd4j.linalg.api.ops.impl.transforms.gradient.ELUDerivative) Pair(org.nd4j.linalg.primitives.Pair)

Example 57 with Pair

use of org.nd4j.linalg.primitives.Pair in project nd4j by deeplearning4j.

the class ActivationLReLU method backprop.

@Override
public Pair<INDArray, INDArray> backprop(INDArray in, INDArray epsilon) {
    INDArray dLdz = Nd4j.getExecutioner().execAndReturn(new LeakyReLUDerivative(in, alpha));
    dLdz.muli(epsilon);
    return new Pair<>(dLdz, null);
}
Also used : INDArray(org.nd4j.linalg.api.ndarray.INDArray) LeakyReLUDerivative(org.nd4j.linalg.api.ops.impl.transforms.gradient.LeakyReLUDerivative) Pair(org.nd4j.linalg.primitives.Pair)

Example 58 with Pair

use of org.nd4j.linalg.primitives.Pair in project nd4j by deeplearning4j.

the class ActivationRationalTanh method backprop.

@Override
public Pair<INDArray, INDArray> backprop(INDArray in, INDArray epsilon) {
    INDArray dLdz = Nd4j.getExecutioner().execAndReturn(new RationalTanhDerivative(in));
    dLdz.muli(epsilon);
    return new Pair<>(dLdz, null);
}
Also used : RationalTanhDerivative(org.nd4j.linalg.api.ops.impl.transforms.gradient.RationalTanhDerivative) INDArray(org.nd4j.linalg.api.ndarray.INDArray) Pair(org.nd4j.linalg.primitives.Pair)

Example 59 with Pair

use of org.nd4j.linalg.primitives.Pair in project nd4j by deeplearning4j.

the class ActivationRectifiedTanh method backprop.

@Override
public Pair<INDArray, INDArray> backprop(INDArray in, INDArray epsilon) {
    INDArray dLdz = Nd4j.getExecutioner().execAndReturn(new RectifiedTanhDerivative(in));
    dLdz.muli(epsilon);
    return new Pair<>(dLdz, null);
}
Also used : INDArray(org.nd4j.linalg.api.ndarray.INDArray) RectifiedTanhDerivative(org.nd4j.linalg.api.ops.impl.transforms.gradient.RectifiedTanhDerivative) Pair(org.nd4j.linalg.primitives.Pair)

Example 60 with Pair

use of org.nd4j.linalg.primitives.Pair in project nd4j by deeplearning4j.

the class ActivationSigmoid method backprop.

@Override
public Pair<INDArray, INDArray> backprop(INDArray in, INDArray epsilon) {
    INDArray dLdz = Nd4j.getExecutioner().execAndReturn(new SigmoidDerivative(in));
    dLdz.muli(epsilon);
    return new Pair<>(dLdz, null);
}
Also used : INDArray(org.nd4j.linalg.api.ndarray.INDArray) SigmoidDerivative(org.nd4j.linalg.api.ops.impl.transforms.SigmoidDerivative) Pair(org.nd4j.linalg.primitives.Pair)

Aggregations

Pair (org.nd4j.linalg.primitives.Pair)66 INDArray (org.nd4j.linalg.api.ndarray.INDArray)63 Test (org.junit.Test)24 BaseNd4jTest (org.nd4j.linalg.BaseNd4jTest)9 ND4JIllegalStateException (org.nd4j.linalg.exception.ND4JIllegalStateException)5 ArrayList (java.util.ArrayList)4 DataBuffer (org.nd4j.linalg.api.buffer.DataBuffer)4 Ignore (org.junit.Ignore)3 List (java.util.List)2 RealMatrix (org.apache.commons.math3.linear.RealMatrix)2 IntPointer (org.bytedeco.javacpp.IntPointer)2 Pointer (org.bytedeco.javacpp.Pointer)2 OpExecutionerUtil (org.nd4j.linalg.api.ops.executioner.OpExecutionerUtil)2 LongPointerWrapper (org.nd4j.nativeblas.LongPointerWrapper)2 IntBuffer (java.nio.IntBuffer)1 Random (java.util.Random)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1 Array2DRowRealMatrix (org.apache.commons.math3.linear.Array2DRowRealMatrix)1 BlockRealMatrix (org.apache.commons.math3.linear.BlockRealMatrix)1 LUDecomposition (org.apache.commons.math3.linear.LUDecomposition)1