org.nd4j.autodiff.samediff.internal.SameDiffOp Maven / Gradle / Ivy
The newest version!
/*
* ******************************************************************************
* *
* *
* * This program and the accompanying materials are made available under the
* * terms of the Apache License, Version 2.0 which is available at
* * https://www.apache.org/licenses/LICENSE-2.0.
* *
* * See the NOTICE file distributed with this work for additional
* * information regarding copyright ownership.
* * Unless required by applicable law or agreed to in writing, software
* * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* * License for the specific language governing permissions and limitations
* * under the License.
* *
* * SPDX-License-Identifier: Apache-2.0
* *****************************************************************************
*/
package org.nd4j.autodiff.samediff.internal;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.nd4j.autodiff.functions.DifferentialFunction;
import java.util.List;
@Data
@NoArgsConstructor
public class SameDiffOp {
protected String name;
protected DifferentialFunction op; //Actual op (note: should be mutable: i.e., cloneable, no arrays set)
protected List inputsToOp; //Name of SDVariables as input
protected List outputsOfOp; //Name of SDVariables as output
protected List controlDeps; //Name of SDVariables as control dependencies (not data inputs, but need to be available before exec)
protected List varControlDeps; //Variables (constants, placeholders, etc) that are control dependencies for this op
protected List controlDepFor; //Name of the variables that this op is a control dependency for
@Builder
public SameDiffOp(String name, DifferentialFunction op, List inputsToOp, List outputsOfOp, List controlDeps, List varControlDeps, List controlDepFor) {
this.name = name;
this.op = op;
this.inputsToOp = inputsToOp;
this.outputsOfOp = outputsOfOp;
this.controlDeps = controlDeps;
this.varControlDeps = varControlDeps;
this.controlDepFor = controlDepFor;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public DifferentialFunction getOp() {
return op;
}
public void setOp(DifferentialFunction op) {
this.op = op;
}
public List getInputsToOp() {
return inputsToOp;
}
public void setInputsToOp(List inputsToOp) {
this.inputsToOp = inputsToOp;
}
public List getOutputsOfOp() {
return outputsOfOp;
}
public void setOutputsOfOp(List outputsOfOp) {
this.outputsOfOp = outputsOfOp;
}
public List getControlDeps() {
return controlDeps;
}
public void setControlDeps(List controlDeps) {
this.controlDeps = controlDeps;
}
public List getVarControlDeps() {
return varControlDeps;
}
public void setVarControlDeps(List varControlDeps) {
this.varControlDeps = varControlDeps;
}
public List getControlDepFor() {
return controlDepFor;
}
public void setControlDepFor(List controlDepFor) {
this.controlDepFor = controlDepFor;
}
}