org.nd4j.linalg.api.ops.impl.loss.BaseLoss Maven / Gradle / Ivy
package org.nd4j.linalg.api.ops.impl.loss;
import lombok.NonNull;
import org.nd4j.autodiff.loss.LossReduce;
import org.nd4j.autodiff.samediff.SDVariable;
import org.nd4j.autodiff.samediff.SameDiff;
import org.nd4j.linalg.api.ops.DynamicCustomOp;
public abstract class BaseLoss extends DynamicCustomOp {
protected LossReduce lossReduce;
public BaseLoss(@NonNull SameDiff sameDiff, @NonNull LossReduce lossReduce, @NonNull SDVariable predictions, @NonNull SDVariable weights,
@NonNull SDVariable labels){
super(null, sameDiff, new SDVariable[]{predictions, weights, labels});
this.lossReduce = lossReduce;
addArgs();
}
protected BaseLoss(){ }
protected void addArgs(){
iArguments.clear();
tArguments.clear();
addIArgument(lossReduce.ordinal()); //Ops: 0 - "none"; 1 - "weighted_sum"; 2 - "weighted_mean"; 3 - "weighted_sum_by_nonzero_weights"
}
public abstract String opName();
}