
org.deeplearning4j.arbiter.layers.BaseOutputLayerSpace Maven / Gradle / Ivy
/*
*
* * Copyright 2016 Skymind,Inc.
* *
* * Licensed under the Apache License, Version 2.0 (the "License");
* * you may not use this file except in compliance with the License.
* * You may obtain a copy of the License at
* *
* * http://www.apache.org/licenses/LICENSE-2.0
* *
* * 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.
*
*/
package org.deeplearning4j.arbiter.layers;
import org.deeplearning4j.arbiter.optimize.parameter.FixedValue;
import org.deeplearning4j.arbiter.optimize.api.ParameterSpace;
import org.deeplearning4j.nn.conf.layers.BaseOutputLayer;
import org.nd4j.linalg.lossfunctions.LossFunctions.LossFunction;
import java.util.List;
/**
* @param Type of the (concrete) output layer
*/
public abstract class BaseOutputLayerSpace extends FeedForwardLayerSpace{
protected ParameterSpace lossFunction;
protected BaseOutputLayerSpace(Builder builder){
super(builder);
this.lossFunction = builder.lossFunction;
}
protected void setLayerOptionsBuilder(BaseOutputLayer.Builder builder, double[] values){
super.setLayerOptionsBuilder(builder,values);
if(lossFunction != null) builder.lossFunction(lossFunction.getValue(values));
}
@Override
public List collectLeaves(){
List list = super.collectLeaves();
if(lossFunction != null) list.addAll(lossFunction.collectLeaves());
return list;
}
@SuppressWarnings("unchecked")
public static abstract class Builder extends FeedForwardLayerSpace.Builder{
protected ParameterSpace lossFunction;
public T lossFunction(LossFunction lossFunction){
return lossFunction(new FixedValue<>(lossFunction));
}
public T lossFunction(ParameterSpace lossFunction){
this.lossFunction = lossFunction;
return (T)this;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy