diff --git a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/gradientcheck/RnnGradientChecks.java b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/gradientcheck/RnnGradientChecks.java index 3419f4884..08dcc008f 100644 --- a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/gradientcheck/RnnGradientChecks.java +++ b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/gradientcheck/RnnGradientChecks.java @@ -267,11 +267,11 @@ public class RnnGradientChecks extends BaseDL4JTest { .activation(Activation.TANH) .updater(new NoOp()) .weightInit(WeightInit.XAVIER) - .list() + .layer(simple ? SimpleRnn.builder().nOut(layerSize).hasLayerNorm(hasLayerNorm).build() : LSTM.builder().nOut(layerSize).build()) - .layer(new LastTimeStep(simple ? SimpleRnn.builder().nOut(layerSize).hasLayerNorm(hasLayerNorm).build() : - LSTM.builder().nOut(layerSize).build())) + .layer(LastTimeStep.builder().underlying(simple ? SimpleRnn.builder().nOut(layerSize).hasLayerNorm(hasLayerNorm).build() : + LSTM.builder().nOut(layerSize).build()).build()) .layer(OutputLayer.builder().nOut(nOut).activation(Activation.SOFTMAX) .lossFunction(LossFunctions.LossFunction.MCXENT).build()) .inputType(InputType.recurrent(nIn)) @@ -335,7 +335,7 @@ public class RnnGradientChecks extends BaseDL4JTest { .weightInit(WeightInit.XAVIER) .list() .layer(LSTM.builder().nOut(layerSize).build()) - .layer(new TimeDistributed(DenseLayer.builder().nOut(layerSize).activation(Activation.SOFTMAX).build())) + .layer(TimeDistributed.builder().underlying(DenseLayer.builder().nOut(layerSize).activation(Activation.SOFTMAX).build()).build()) .layer(RnnOutputLayer.builder().nOut(nOut).activation(Activation.SOFTMAX) .lossFunction(LossFunctions.LossFunction.MCXENT).build()) .inputType(InputType.recurrent(nIn)) diff --git a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/dtypes/DTypeTests.java b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/dtypes/DTypeTests.java index 99162a472..ff93de75c 100644 --- a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/dtypes/DTypeTests.java +++ b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/dtypes/DTypeTests.java @@ -482,7 +482,7 @@ public class DTypeTests extends BaseDL4JTest { break; case 1: ol = LossLayer.builder().activation(Activation.SOFTMAX).lossFunction(LossFunctions.LossFunction.MCXENT.getILossFunction()).build(); - secondLast = new FrozenLayerWithBackprop(DenseLayer.builder().nOut(10).activation(Activation.SIGMOID).build()); + secondLast = FrozenLayerWithBackprop.builder().underlying(DenseLayer.builder().nOut(10).activation(Activation.SIGMOID).build()).build(); break; case 2: ol =CenterLossOutputLayer.builder().nOut(10).activation(Activation.SOFTMAX).lossFunction(LossFunctions.LossFunction.MCXENT).build(); @@ -889,7 +889,7 @@ public class DTypeTests extends BaseDL4JTest { break; case 2: ol = OutputLayer.builder().nOut(5).build(); - secondLast = new LastTimeStep(SimpleRnn.builder().nOut(5).activation(Activation.TANH).build()); + secondLast = LastTimeStep.builder().underlying(SimpleRnn.builder().nOut(5).activation(Activation.TANH).build()).build(); break; default: throw new RuntimeException(); @@ -905,7 +905,7 @@ public class DTypeTests extends BaseDL4JTest { .layer(DenseLayer.builder().nOut(5).build()) .layer(GravesBidirectionalLSTM.builder().nIn(5).nOut(5).activation(Activation.TANH).build()) .layer(Bidirectional.builder(LSTM.builder().nIn(5).nOut(5).activation(Activation.TANH).build()).build()) - .layer(new TimeDistributed(DenseLayer.builder().nIn(10).nOut(5).activation(Activation.TANH).build())) + .layer(TimeDistributed.builder().underlying(DenseLayer.builder().nIn(10).nOut(5).activation(Activation.TANH).build()).build()) .layer(SimpleRnn.builder().nIn(5).nOut(5).build()) .layer(MaskZeroLayer.builder().underlying(SimpleRnn.builder().nIn(5).nOut(5).build()).maskingValue(0.0).build()) .layer(secondLast) @@ -1062,7 +1062,7 @@ public class DTypeTests extends BaseDL4JTest { INDArray input; if (test == 0) { if (frozen) { - conf.layer("0", new FrozenLayer(EmbeddingLayer.builder().nIn(5).nOut(5).build()), "in"); + conf.layer("0", FrozenLayer.builder(EmbeddingLayer.builder().nIn(5).nOut(5).build()).build(), "in"); } else { conf.layer("0", EmbeddingLayer.builder().nIn(5).nOut(5).build(), "in"); } @@ -1071,7 +1071,7 @@ public class DTypeTests extends BaseDL4JTest { conf.setInputTypes(InputType.feedForward(1)); } else if (test == 1) { if (frozen) { - conf.layer("0", new FrozenLayer(EmbeddingSequenceLayer.builder().nIn(5).nOut(5).build()), "in"); + conf.layer("0", FrozenLayer.builder(EmbeddingSequenceLayer.builder().nIn(5).nOut(5).build()).build(), "in"); } else { conf.layer("0", EmbeddingSequenceLayer.builder().nIn(5).nOut(5).build(), "in"); } diff --git a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/graph/TestComputationGraphNetwork.java b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/graph/TestComputationGraphNetwork.java index d57dd17d0..01295d921 100644 --- a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/graph/TestComputationGraphNetwork.java +++ b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/graph/TestComputationGraphNetwork.java @@ -1925,7 +1925,7 @@ public class TestComputationGraphNetwork extends BaseDL4JTest { .setOutputs("output") .addLayer("0", ConvolutionLayer.builder().nOut(5).convolutionMode(ConvolutionMode.Same).build(),"input" ) .addVertex("dummyAdd", new ElementWiseVertex(ElementWiseVertex.Op.Add), "0") - .addLayer("output", new CnnLossLayer(), "dummyAdd") + .addLayer("output", CnnLossLayer.builder(), "dummyAdd") .build()); graph.init(); graph.outputSingle(Nd4j.randn(1, 2, 10, 10)); diff --git a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/FrozenLayerTest.java b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/FrozenLayerTest.java index ca17d31e9..bcbf3b89b 100644 --- a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/FrozenLayerTest.java +++ b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/FrozenLayerTest.java @@ -289,11 +289,11 @@ public class FrozenLayerTest extends BaseDL4JTest { .build(); NeuralNetConfiguration conf2 = NeuralNetConfiguration.builder().seed(12345).list().layer(0, - new org.deeplearning4j.nn.conf.layers.misc.FrozenLayer(DenseLayer.builder().nIn(10).nOut(10) - .activation(Activation.TANH).weightInit(WeightInit.XAVIER).build())) - .layer(1, new org.deeplearning4j.nn.conf.layers.misc.FrozenLayer( + org.deeplearning4j.nn.conf.layers.misc.FrozenLayer.builder(DenseLayer.builder().nIn(10).nOut(10) + .activation(Activation.TANH).weightInit(WeightInit.XAVIER).build()).build()) + .layer(1, org.deeplearning4j.nn.conf.layers.misc.FrozenLayer.builder( DenseLayer.builder().nIn(10).nOut(10).activation(Activation.TANH) - .weightInit(WeightInit.XAVIER).build())) + .weightInit(WeightInit.XAVIER).build()).build()) .layer(2, org.deeplearning4j.nn.conf.layers.OutputLayer.builder().lossFunction( LossFunctions.LossFunction.MCXENT).activation(Activation.SOFTMAX).nIn(10) .nOut(10).build()) diff --git a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/FrozenLayerWithBackpropTest.java b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/FrozenLayerWithBackpropTest.java index b3bf90162..3fc79af09 100644 --- a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/FrozenLayerWithBackpropTest.java +++ b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/FrozenLayerWithBackpropTest.java @@ -60,11 +60,11 @@ public class FrozenLayerWithBackpropTest extends BaseDL4JTest { .build(); NeuralNetConfiguration conf2 = NeuralNetConfiguration.builder().seed(12345).list().layer(0, - new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop(DenseLayer.builder().nIn(10).nOut(10) - .activation(Activation.TANH).weightInit(WeightInit.XAVIER).build())) - .layer(1, new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop( + org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder(DenseLayer.builder().nIn(10).nOut(10) + .activation(Activation.TANH).weightInit(WeightInit.XAVIER).build()).build()) + .layer(1, org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder( DenseLayer.builder().nIn(10).nOut(10).activation(Activation.TANH) - .weightInit(WeightInit.XAVIER).build())) + .weightInit(WeightInit.XAVIER).build()).build()) .layer(2, OutputLayer.builder( LossFunctions.LossFunction.MCXENT).activation(Activation.SOFTMAX).nIn(10) .nOut(10).build()) @@ -113,10 +113,10 @@ public class FrozenLayerWithBackpropTest extends BaseDL4JTest { ComputationGraphConfiguration conf2 = NeuralNetConfiguration.builder().seed(12345).graphBuilder() .addInputs("in") - .addLayer("0", new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop( + .addLayer("0", org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder( DenseLayer.builder().nIn(10).nOut(10).activation(Activation.TANH) .weightInit(WeightInit.XAVIER).build()), "in") - .addLayer("1", new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop( + .addLayer("1", org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder( DenseLayer.builder().nIn(10).nOut(10).activation(Activation.TANH) .weightInit(WeightInit.XAVIER).build()), "0") .addLayer("2", OutputLayer.builder( @@ -160,11 +160,11 @@ public class FrozenLayerWithBackpropTest extends BaseDL4JTest { .updater(new Sgd(2)) .list() .layer(DenseLayer.builder().nIn(4).nOut(3).build()) - .layer(new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop( + .layer(org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder( DenseLayer.builder().nIn(3).nOut(4).build())) - .layer(new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop( + .layer(org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder( DenseLayer.builder().nIn(4).nOut(2).build())) - .layer(new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop( + .layer(org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder( OutputLayer.builder().lossFunction(LossFunctions.LossFunction.MSE).activation(Activation.TANH).nIn(2).nOut(1).build())) .build(); @@ -213,15 +213,15 @@ public class FrozenLayerWithBackpropTest extends BaseDL4JTest { .addInputs("input") .addLayer(initialLayer, DenseLayer.builder().nIn(4).nOut(4).build(),"input") .addLayer(frozenBranchUnfrozenLayer0, DenseLayer.builder().nIn(4).nOut(3).build(),initialLayer) - .addLayer(frozenBranchFrozenLayer1, new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop( + .addLayer(frozenBranchFrozenLayer1, org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder( DenseLayer.builder().nIn(3).nOut(4).build()),frozenBranchUnfrozenLayer0) - .addLayer(frozenBranchFrozenLayer2, new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop( + .addLayer(frozenBranchFrozenLayer2, org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder( DenseLayer.builder().nIn(4).nOut(2).build()),frozenBranchFrozenLayer1) .addLayer(unfrozenLayer0, DenseLayer.builder().nIn(4).nOut(4).build(),initialLayer) .addLayer(unfrozenLayer1, DenseLayer.builder().nIn(4).nOut(2).build(),unfrozenLayer0) .addLayer(unfrozenBranch2, DenseLayer.builder().nIn(2).nOut(1).build(),unfrozenLayer1) .addVertex("merge", new MergeVertex(), frozenBranchFrozenLayer2, unfrozenBranch2) - .addLayer(frozenBranchOutput,new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop( + .addLayer(frozenBranchOutput,org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder( OutputLayer.builder().lossFunction(LossFunctions.LossFunction.MSE).activation(Activation.TANH).nIn(3).nOut(1).build()),"merge") .setOutputs(frozenBranchOutput) .build(); @@ -269,9 +269,9 @@ public class FrozenLayerWithBackpropTest extends BaseDL4JTest { .updater(new Sgd(2)) .list() .layer(0,DenseLayer.builder().nIn(4).nOut(3).build()) - .layer(1,new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop(DenseLayer.builder().nIn(3).nOut(4).build())) - .layer(2,new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop(DenseLayer.builder().nIn(4).nOut(2).build())) - .layer(3,new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop(OutputLayer.builder().lossFunction(LossFunctions.LossFunction.MSE).activation(Activation.TANH).nIn(2).nOut(1).build())) + .layer(1,org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder(DenseLayer.builder().nIn(3).nOut(4).build())) + .layer(2,org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder(DenseLayer.builder().nIn(4).nOut(2).build())) + .layer(3,org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder(OutputLayer.builder().lossFunction(LossFunctions.LossFunction.MSE).activation(Activation.TANH).nIn(2).nOut(1).build())) .build(); MultiLayerNetwork frozenNetwork = new MultiLayerNetwork(confFrozen); frozenNetwork.init(); @@ -327,16 +327,16 @@ public class FrozenLayerWithBackpropTest extends BaseDL4JTest { .addInputs("input") .addLayer(initialLayer,DenseLayer.builder().nIn(4).nOut(4).build(),"input") .addLayer(frozenBranchUnfrozenLayer0,DenseLayer.builder().nIn(4).nOut(3).build(), initialLayer) - .addLayer(frozenBranchFrozenLayer1,new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop( + .addLayer(frozenBranchFrozenLayer1,org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder( DenseLayer.builder().nIn(3).nOut(4).build()),frozenBranchUnfrozenLayer0) .addLayer(frozenBranchFrozenLayer2, - new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop( + org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder( DenseLayer.builder().nIn(4).nOut(2).build()),frozenBranchFrozenLayer1) .addLayer(unfrozenLayer0,DenseLayer.builder().nIn(4).nOut(4).build(),initialLayer) .addLayer(unfrozenLayer1,DenseLayer.builder().nIn(4).nOut(2).build(),unfrozenLayer0) .addLayer(unfrozenBranch2,DenseLayer.builder().nIn(2).nOut(1).build(),unfrozenLayer1) .addVertex("merge",new MergeVertex(), frozenBranchFrozenLayer2, unfrozenBranch2) - .addLayer(frozenBranchOutput, new org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop( + .addLayer(frozenBranchOutput, org.deeplearning4j.nn.conf.layers.misc.FrozenLayerWithBackprop.builder( OutputLayer.builder().lossFunction(LossFunctions.LossFunction.MSE).activation(Activation.TANH).nIn(3).nOut(1).build()),"merge") .setOutputs(frozenBranchOutput) .build(); diff --git a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/recurrent/RnnDataFormatTests.java b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/recurrent/RnnDataFormatTests.java index 423fe9e42..28c4a4a25 100644 --- a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/recurrent/RnnDataFormatTests.java +++ b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/recurrent/RnnDataFormatTests.java @@ -243,7 +243,7 @@ public class RnnDataFormatTests extends BaseDL4JTest { layer = MaskZeroLayer.builder().maskingValue(0.).underlying(layer).build(); } if(lastTimeStep){ - layer = new LastTimeStep(layer); + layer = LastTimeStep.builder(layer); } NeuralNetConfiguration.NeuralNetConfigurationBuilder builder = (NeuralNetConfiguration.NeuralNetConfigurationBuilder) NeuralNetConfiguration.builder() .seed(12345) diff --git a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/recurrent/TestLastTimeStepLayer.java b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/recurrent/TestLastTimeStepLayer.java index b64277c1d..3202e81e0 100644 --- a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/recurrent/TestLastTimeStepLayer.java +++ b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/recurrent/TestLastTimeStepLayer.java @@ -63,7 +63,7 @@ public class TestLastTimeStepLayer extends BaseDL4JTest { public void testLastTimeStepVertex() { ComputationGraphConfiguration conf = NeuralNetConfiguration.builder().graphBuilder().addInputs("in") - .addLayer("lastTS", new LastTimeStep(SimpleRnn.builder() + .addLayer("lastTS", LastTimeStep.builder(SimpleRnn.builder() .nIn(5).nOut(6).dataFormat(rnnDataFormat).build()), "in") .setOutputs("lastTS") .build(); @@ -134,7 +134,7 @@ public class TestLastTimeStepLayer extends BaseDL4JTest { .graphBuilder() .addInputs("in") .setInputTypes(InputType.recurrent(1, rnnDataFormat)) - .addLayer("RNN", new LastTimeStep(LSTM.builder() + .addLayer("RNN", LastTimeStep.builder(LSTM.builder() .nOut(10).dataFormat(rnnDataFormat) .build()), "in") .addLayer("dense", DenseLayer.builder() diff --git a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/recurrent/TestTimeDistributed.java b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/recurrent/TestTimeDistributed.java index be057ca2b..c94b4f6f8 100644 --- a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/recurrent/TestTimeDistributed.java +++ b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/layers/recurrent/TestTimeDistributed.java @@ -79,9 +79,8 @@ public class TestTimeDistributed extends BaseDL4JTest { .inferenceWorkspaceMode(wsm) .seed(12345) .updater(new Adam(0.1)) - .list() .layer(LSTM.builder().nIn(3).nOut(3).dataFormat(rnnDataFormat).build()) - .layer(new TimeDistributed(DenseLayer.builder().nIn(3).nOut(3).activation(Activation.TANH).build(), rnnDataFormat)) + .layer(TimeDistributed.builder().underlying(DenseLayer.builder().nIn(3).nOut(3).activation(Activation.TANH).build()).rnnDataFormat(rnnDataFormat)) .layer(RnnOutputLayer.builder().nIn(3).nOut(3).activation(Activation.SOFTMAX).dataFormat(rnnDataFormat) .lossFunction(LossFunctions.LossFunction.MCXENT).build()) .inputType(InputType.recurrent(3, rnnDataFormat)) diff --git a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/multilayer/TestMasking.java b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/multilayer/TestMasking.java index ccb4c10f8..5e42a147d 100644 --- a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/multilayer/TestMasking.java +++ b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/multilayer/TestMasking.java @@ -314,7 +314,7 @@ public class TestMasking extends BaseDL4JTest { ) .addInputs("m1", "m2") .addVertex("stack", new StackVertex(), "m1", "m2") - .addLayer("lastUnStacked", new LastTimeStep(LSTM.builder().nIn(3).nOut(1).activation(Activation.TANH).build()), "stack") + .addLayer("lastUnStacked", LastTimeStep.builder(LSTM.builder().nIn(3).nOut(1).activation(Activation.TANH).build()), "stack") .addVertex("unstacked1", new UnstackVertex(0, 2), "lastUnStacked") .addVertex("unstacked2", new UnstackVertex(1, 2), "lastUnStacked") .addVertex("restacked", new StackVertex(), "unstacked1", "unstacked2") diff --git a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/transferlearning/TransferLearningCompGraphTest.java b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/transferlearning/TransferLearningCompGraphTest.java index 55af24b0c..75938577a 100644 --- a/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/transferlearning/TransferLearningCompGraphTest.java +++ b/cavis-dnn/cavis-dnn-core/src/test/java/org/deeplearning4j/nn/transferlearning/TransferLearningCompGraphTest.java @@ -336,12 +336,12 @@ public class TransferLearningCompGraphTest extends BaseDL4JTest { new ComputationGraph(overallConf.graphBuilder().addInputs("layer0In") .setInputTypes(InputType.convolutionalFlat(28,28, 3)) .addLayer("layer0", - new FrozenLayer(ConvolutionLayer.builder(5, 5).nIn(3) + FrozenLayer.builder(ConvolutionLayer.builder(5, 5).nIn(3) .stride(1, 1).nOut(20) .activation(Activation.IDENTITY).build()), "layer0In") .addLayer("layer1", - new FrozenLayer(SubsamplingLayer.builder( + FrozenLayer.builder(SubsamplingLayer.builder( SubsamplingLayer.PoolingType.MAX) .kernelSize(2, 2).stride(2, 2) .build()), @@ -430,11 +430,11 @@ public class TransferLearningCompGraphTest extends BaseDL4JTest { .weightInit(WeightInit.XAVIER) .graphBuilder().addInputs("in") .addLayer("blstm1", - new FrozenLayer(GravesBidirectionalLSTM.builder().nIn(10).nOut(10) + FrozenLayer.builder(GravesBidirectionalLSTM.builder().nIn(10).nOut(10) .activation(Activation.TANH).build()), "in") - .addLayer("pool", new FrozenLayer(GlobalPoolingLayer.builder().build()), "blstm1") - .addLayer("dense", new FrozenLayer(DenseLayer.builder().nIn(10).nOut(10).build()), "pool") + .addLayer("pool", FrozenLayer.builder(GlobalPoolingLayer.builder().build()), "blstm1") + .addLayer("dense", FrozenLayer.builder(DenseLayer.builder().nIn(10).nOut(10).build()), "pool") .addLayer("out", OutputLayer.builder().nIn(10).nOut(5).activation(Activation.SOFTMAX) .updater(new Adam(0.1)) .lossFunction(LossFunctions.LossFunction.MCXENT).build(), "dense") diff --git a/cavis-dnn/cavis-dnn-modelimport/src/main/java/org/deeplearning4j/nn/modelimport/keras/layers/recurrent/KerasLSTM.java b/cavis-dnn/cavis-dnn-modelimport/src/main/java/org/deeplearning4j/nn/modelimport/keras/layers/recurrent/KerasLSTM.java index 7eacabf68..f84fff674 100644 --- a/cavis-dnn/cavis-dnn-modelimport/src/main/java/org/deeplearning4j/nn/modelimport/keras/layers/recurrent/KerasLSTM.java +++ b/cavis-dnn/cavis-dnn-modelimport/src/main/java/org/deeplearning4j/nn/modelimport/keras/layers/recurrent/KerasLSTM.java @@ -203,7 +203,7 @@ public class KerasLSTM extends KerasLayer { this.layer = builder.build(); if (!returnSequences) { - this.layer = new LastTimeStep(this.layer); + this.layer = LastTimeStep.builder(this.layer); } if (maskingConfig.getFirst()) { this.layer = new MaskZeroLayer(this.layer, maskingConfig.getSecond()); diff --git a/cavis-dnn/cavis-dnn-modelimport/src/main/java/org/deeplearning4j/nn/modelimport/keras/layers/recurrent/KerasSimpleRnn.java b/cavis-dnn/cavis-dnn-modelimport/src/main/java/org/deeplearning4j/nn/modelimport/keras/layers/recurrent/KerasSimpleRnn.java index 5760444f3..8ef608079 100644 --- a/cavis-dnn/cavis-dnn-modelimport/src/main/java/org/deeplearning4j/nn/modelimport/keras/layers/recurrent/KerasSimpleRnn.java +++ b/cavis-dnn/cavis-dnn-modelimport/src/main/java/org/deeplearning4j/nn/modelimport/keras/layers/recurrent/KerasSimpleRnn.java @@ -174,7 +174,7 @@ public class KerasSimpleRnn extends KerasLayer { this.layer = builder.build(); if (!returnSequences) { - this.layer = new LastTimeStep(this.layer); + this.layer = LastTimeStep.builder(this.layer); } if (maskingConfig.getFirst()) { this.layer = new MaskZeroLayer(this.layer, maskingConfig.getSecond()); diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/ComputationGraphConfiguration.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/ComputationGraphConfiguration.java index a21af68f8..784d768ff 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/ComputationGraphConfiguration.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/ComputationGraphConfiguration.java @@ -819,6 +819,9 @@ public class ComputationGraphConfiguration implements Serializable, Cloneable { public GraphBuilder addLayer(String layerName, LayerConfiguration layer, String... layerInputs) { return addLayer(layerName, layer, null, layerInputs); } + public GraphBuilder addLayer(String layerName, LayerConfiguration.LayerConfigurationBuilder layer, String... layerInputs) { + return addLayer(layerName, layer.build(), null, layerInputs); + } /** * Add a layer, with no {@link InputPreProcessor}, with the specified name diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/NeuralNetBaseBuilderConfiguration.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/NeuralNetBaseBuilderConfiguration.java index bb6d0c44a..a9afe9332 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/NeuralNetBaseBuilderConfiguration.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/NeuralNetBaseBuilderConfiguration.java @@ -661,7 +661,17 @@ public abstract class NeuralNetBaseBuilderConfiguration implements INeuralNetwor public B layer(Integer index, @NonNull LayerConfiguration layer) { innerConfigurations$value.add(index, layer); innerConfigurations$set = true; - return (B) this; + return self(); + } + /** + * Set layer at index + * + * @param index where to insert + * @param layer the layer + * @return builder + */ + public B layer(Integer index, @NonNull LayerConfiguration.LayerConfigurationBuilder layer) { + return this.layer(index, layer.build()); } /** @@ -675,6 +685,9 @@ public abstract class NeuralNetBaseBuilderConfiguration implements INeuralNetwor innerConfigurations$set = true; return (B) this; } + public B layer(@NonNull LayerConfiguration.LayerConfigurationBuilder layer) { + return this.layer(layer.build()); + } // TODO this is a dirty workaround public boolean isOverrideNinUponBuild() { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/BaseLayerConfiguration.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/BaseLayerConfiguration.java index 30292b90a..4459dd82d 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/BaseLayerConfiguration.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/BaseLayerConfiguration.java @@ -212,6 +212,16 @@ public abstract class BaseLayerConfiguration extends LayerConfiguration C extends BaseLayerConfiguration, B extends BaseLayerConfigurationBuilder> extends LayerConfigurationBuilder { +public B updater(Updater upd) { + this.updater = upd.getIUpdaterWithDefaultConfig(); + return self(); +} + + + public B updater(IUpdater upd) { + this.updater = upd; + return self(); + } /** * Set weight initialization scheme to random sampling via the specified distribution. diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/CapsuleLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/CapsuleLayer.java index 4d22d79df..0d13f2b88 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/CapsuleLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/CapsuleLayer.java @@ -38,7 +38,7 @@ import org.nd4j.linalg.api.memory.MemoryWorkspace; import org.nd4j.linalg.api.ndarray.INDArray; import org.nd4j.linalg.factory.Nd4j; -@Data + @EqualsAndHashCode(callSuper = true) @SuperBuilder(buildMethodName = "initBuild", builderMethodName = "innerBuilder") public class CapsuleLayer extends SameDiffLayer { @@ -50,33 +50,33 @@ public class CapsuleLayer extends SameDiffLayer { * @param hasBias * @return */ - @Builder.Default private boolean hasBias = false; + @Builder.Default @Getter @Setter private boolean hasBias = false; /** * Usually inferred automatically. * @param inputCapsules * @return */ - @Builder.Default private long inputCapsules = 0; + @Builder.Default @Getter @Setter private long inputCapsules = 0; /** * Usually inferred automatically. * @param inputCapsuleDimensions * @return */ - @Builder.Default private long inputCapsuleDimensions = 0; + @Builder.Default @Getter @Setter private long inputCapsuleDimensions = 0; /** * Set the number of capsules to use. * @param capsules * @return */ - private int capsules; - private int capsuleDimensions; + @Getter @Setter private int capsules; + @Getter @Setter private int capsuleDimensions; /** * Set the number of dynamic routing iterations to use. * The default is 3 (recommendedded in Dynamic Routing Between Capsules) * @param routings * @return */ - @Builder.Default private int routings = 3; + @Builder.Default @Getter @Setter private int routings = 3; @Override public void setNIn(InputType inputType, boolean override) { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/CapsuleStrengthLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/CapsuleStrengthLayer.java index b3b680b55..99980c490 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/CapsuleStrengthLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/CapsuleStrengthLayer.java @@ -32,7 +32,6 @@ import org.nd4j.autodiff.samediff.SDVariable; import org.nd4j.autodiff.samediff.SameDiff; @Data -@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @SuperBuilder public class CapsuleStrengthLayer extends SameDiffLambdaLayer { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/CnnLossLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/CnnLossLayer.java index 80d770687..8c6643d6d 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/CnnLossLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/CnnLossLayer.java @@ -39,7 +39,6 @@ import org.nd4j.linalg.api.ndarray.INDArray; import org.nd4j.linalg.lossfunctions.ILossFunction; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ConvolutionLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ConvolutionLayer.java index 619dd6194..43c6a11e2 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ConvolutionLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ConvolutionLayer.java @@ -46,7 +46,7 @@ import org.nd4j.linalg.api.ndarray.INDArray; * to be used in the net or in other words the channels The builder specifies the filter/kernel * size, the stride and padding The pooling layer takes the kernel size */ -@Data + @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(buildMethodName = "initBuild", builderMethodName = "innerBuilder") @@ -72,7 +72,7 @@ public class ConvolutionLayer extends FeedForwardLayer { * * @param format Format for activations (in and out) */ - @Builder.Default + @Builder.Default @Getter @Setter private CNN2DFormat convFormat = CNN2DFormat.NCHW; // default value for legacy serialization reasons @@ -86,24 +86,29 @@ public class ConvolutionLayer extends FeedForwardLayer { * http://deeplearning.net/software/theano/tutorial/conv_arithmetic.html#dilated-convolutions *
*/ + @Getter @Setter private @Builder.Default int[] dilation = new int[] {1, 1}; /** Default is 2. Down-sample by a factor of 2 */ + @Getter @Setter private @Builder.Default int[] stride = new int[] {1, 1}; - +@Getter @Setter private @Builder.Default int[] padding = new int[] {0, 0}; /** * When using CuDNN and an error is encountered, should fallback to the non-CuDNN implementatation * be allowed? If set to false, an exception in CuDNN will be propagated back to the user. If * false, the built-in (non-CuDNN) implementation for ConvolutionLayer will be used */ + @Getter @Builder.Default private boolean cudnnAllowFallback = true; /** Defaults to "PREFER_FASTEST", but "NO_WORKSPACE" uses less memory. */ + @Getter @Builder.Default private AlgoMode cudnnAlgoMode = AlgoMode.PREFER_FASTEST; private FwdAlgo cudnnFwdAlgo; private BwdFilterAlgo cudnnBwdFilterAlgo; private BwdDataAlgo cudnnBwdDataAlgo; + @Getter @Setter @Builder.Default private int convolutionDim = 2; // 2D convolution by default /** Causal convolution - allowed for 1D only */ @Builder.Default private boolean allowCausal = false; diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/EmbeddingLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/EmbeddingLayer.java index 82d80ab84..e18af8eb3 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/EmbeddingLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/EmbeddingLayer.java @@ -45,7 +45,6 @@ import java.util.Collection; import java.util.Map; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(buildMethodName = "initBuild", builderMethodName = "innerBuilder") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/EmbeddingSequenceLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/EmbeddingSequenceLayer.java index 132987c74..09b908445 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/EmbeddingSequenceLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/EmbeddingSequenceLayer.java @@ -44,7 +44,6 @@ import java.util.Collection; import java.util.Map; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(buildMethodName = "initBuild", builderMethodName = "innerBuilder") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/GravesBidirectionalLSTM.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/GravesBidirectionalLSTM.java index ae3e28718..1110e15a6 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/GravesBidirectionalLSTM.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/GravesBidirectionalLSTM.java @@ -39,7 +39,6 @@ import org.nd4j.linalg.api.ndarray.INDArray; import java.util.*; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @Deprecated diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LSTM.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LSTM.java index 1fa4c3e66..f8c1bdc4f 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LSTM.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LSTM.java @@ -41,7 +41,6 @@ import java.util.Collections; import java.util.Map; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(buildMethodName = "initBuild") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LayerConfiguration.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LayerConfiguration.java index d37d08be0..4f79f52bc 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LayerConfiguration.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LayerConfiguration.java @@ -48,7 +48,7 @@ import org.nd4j.linalg.learning.config.IUpdater; import org.nd4j.linalg.learning.regularization.Regularization; /** A neural network layer. */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class") +//@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class") @EqualsAndHashCode // @JsonIdentityInfo(generator= ObjectIdGenerators.IntSequenceGenerator.class, property="@id") @Slf4j diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LocalResponseNormalization.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LocalResponseNormalization.java index 1cf360e03..1dbf9a9c5 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LocalResponseNormalization.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LocalResponseNormalization.java @@ -40,7 +40,6 @@ import org.nd4j.linalg.api.ndarray.INDArray; import org.nd4j.linalg.learning.regularization.Regularization; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(builderMethodName = "innerBuilder") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LocallyConnected2D.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LocallyConnected2D.java index aa9d4e77d..95cb18054 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LocallyConnected2D.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LocallyConnected2D.java @@ -47,7 +47,6 @@ import org.nd4j.linalg.api.ndarray.INDArray; import org.nd4j.linalg.factory.Nd4j; @Data -@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @JsonIgnoreProperties({"paramShapes"}) @SuperBuilder(buildMethodName = "initBuild") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LossLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LossLayer.java index 8855f7223..2384f506c 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LossLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/LossLayer.java @@ -40,7 +40,6 @@ import org.nd4j.linalg.api.ndarray.INDArray; import org.nd4j.linalg.lossfunctions.ILossFunction; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/OutputLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/OutputLayer.java index b08ee76b3..48e4b9f1a 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/OutputLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/OutputLayer.java @@ -37,7 +37,6 @@ import org.nd4j.linalg.lossfunctions.ILossFunction; import org.nd4j.linalg.lossfunctions.LossFunctions; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(buildMethodName = "initBuild", builderMethodName = "innerBuilder") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/PReLULayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/PReLULayer.java index d0a2ed62e..d48d88708 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/PReLULayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/PReLULayer.java @@ -38,7 +38,6 @@ import org.nd4j.linalg.api.buffer.DataType; import org.nd4j.linalg.api.ndarray.INDArray; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(buildMethodName = "initBuild", builderMethodName = "innerBuilder") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Pooling1D.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Pooling1D.java index e06f825dc..f57fb3277 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Pooling1D.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Pooling1D.java @@ -32,7 +32,6 @@ import lombok.ToString; * @author Max Pumperla */ @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) public class Pooling1D extends Subsampling1DLayer { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Pooling2D.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Pooling2D.java index 87bdd59e0..45f66466c 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Pooling2D.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Pooling2D.java @@ -32,7 +32,6 @@ import lombok.ToString; * @author Max Pumperla */ @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) public class Pooling2D extends SubsamplingLayer { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/PrimaryCapsules.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/PrimaryCapsules.java index c5365c7ab..ce8101738 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/PrimaryCapsules.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/PrimaryCapsules.java @@ -40,7 +40,6 @@ import org.nd4j.linalg.api.ops.impl.layers.convolution.config.Conv2DConfig; import org.nd4j.linalg.factory.Nd4j; @Data -@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @SuperBuilder(buildMethodName = "initBuild", builderMethodName = "innerBuilder") public class PrimaryCapsules extends SameDiffLayer { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/RecurrentAttentionLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/RecurrentAttentionLayer.java index ec2ed14bc..73f71ff83 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/RecurrentAttentionLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/RecurrentAttentionLayer.java @@ -42,7 +42,6 @@ import org.nd4j.linalg.factory.Nd4j; import java.util.Map; @Data -@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @SuperBuilder(buildMethodName = "initBuild") public class RecurrentAttentionLayer extends SameDiffLayer { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/RnnLossLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/RnnLossLayer.java index a17a20f69..860a43a9d 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/RnnLossLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/RnnLossLayer.java @@ -40,7 +40,6 @@ import org.nd4j.linalg.lossfunctions.ILossFunction; import org.nd4j.linalg.lossfunctions.LossFunctions; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/RnnOutputLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/RnnOutputLayer.java index b1077cc77..9d774293c 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/RnnOutputLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/RnnOutputLayer.java @@ -40,7 +40,6 @@ import org.nd4j.linalg.api.ndarray.INDArray; import org.nd4j.linalg.lossfunctions.LossFunctions; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(buildMethodName = "initBuild", builderMethodName = "innerBuilder") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SelfAttentionLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SelfAttentionLayer.java index 0aeb128dd..40153688e 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SelfAttentionLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SelfAttentionLayer.java @@ -38,7 +38,6 @@ import org.nd4j.linalg.factory.Nd4j; @Data @EqualsAndHashCode(callSuper = true) -@NoArgsConstructor() @SuperBuilder(buildMethodName = "initBuild") public class SelfAttentionLayer extends SameDiffLayer { private static final String WEIGHT_KEY_QUERY_PROJECTION = "Wq"; diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SpaceToBatchLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SpaceToBatchLayer.java index 79ec98a49..85d1b11e4 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SpaceToBatchLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SpaceToBatchLayer.java @@ -39,7 +39,6 @@ import org.nd4j.linalg.api.buffer.DataType; import org.nd4j.linalg.api.ndarray.INDArray; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(builderMethodName = "innerBuilder") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SpaceToDepthLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SpaceToDepthLayer.java index 6b884a5d0..1c3c625a1 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SpaceToDepthLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SpaceToDepthLayer.java @@ -38,7 +38,6 @@ import java.util.Collection; import java.util.Map; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Subsampling1DLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Subsampling1DLayer.java index 7a9c9cabb..287631484 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Subsampling1DLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Subsampling1DLayer.java @@ -48,7 +48,6 @@ import org.nd4j.linalg.api.ndarray.INDArray; * wide. */ @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(buildMethodName = "initBuild") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Subsampling3DLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Subsampling3DLayer.java index 98f1020de..324503c3d 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Subsampling3DLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Subsampling3DLayer.java @@ -43,7 +43,6 @@ import org.nd4j.linalg.exception.ND4JArraySizeException; import org.nd4j.linalg.learning.regularization.Regularization; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(builderMethodName = "innerBuilder", buildMethodName = "initBuild") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SubsamplingLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SubsamplingLayer.java index cfc5b7c2f..7f3c11ca6 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SubsamplingLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/SubsamplingLayer.java @@ -43,7 +43,6 @@ import org.nd4j.linalg.api.buffer.DataType; import org.nd4j.linalg.api.ndarray.INDArray; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(buildMethodName = "initBuild", builderMethodName = "innerBuilder") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Upsampling1D.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Upsampling1D.java index e05ad0a95..cf83a6164 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Upsampling1D.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Upsampling1D.java @@ -41,7 +41,6 @@ import java.util.Collection; import java.util.Map; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(builderMethodName = "innerBuilder") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Upsampling2D.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Upsampling2D.java index 7452b8de6..febaa0fb1 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Upsampling2D.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Upsampling2D.java @@ -39,7 +39,6 @@ import java.util.Collection; import java.util.Map; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(builderMethodName = "innerBuilder") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Upsampling3D.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Upsampling3D.java index cdeb09c11..4aba279ae 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Upsampling3D.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/Upsampling3D.java @@ -37,7 +37,6 @@ import java.util.Collection; import java.util.Map; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder(builderMethodName = "innerBuilder") diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ZeroPadding1DLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ZeroPadding1DLayer.java index 66a5ac114..a641a16f7 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ZeroPadding1DLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ZeroPadding1DLayer.java @@ -38,7 +38,6 @@ import org.nd4j.linalg.api.buffer.DataType; import org.nd4j.linalg.api.ndarray.INDArray; @Data -@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @SuperBuilder(builderMethodName = "innerBuilder") public class ZeroPadding1DLayer extends NoParamLayer { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ZeroPadding3DLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ZeroPadding3DLayer.java index 798b08411..02701dbb8 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ZeroPadding3DLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ZeroPadding3DLayer.java @@ -39,7 +39,6 @@ import java.util.Collection; import java.util.Map; @Data -@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @SuperBuilder(builderMethodName = "innerBuilder") public class ZeroPadding3DLayer extends NoParamLayer { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ZeroPaddingLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ZeroPaddingLayer.java index f1c2ff1e7..064a55123 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ZeroPaddingLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/ZeroPaddingLayer.java @@ -40,7 +40,6 @@ import java.util.Collection; import java.util.Map; @Data -@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @SuperBuilder(builderMethodName = "innerBuilder", buildMethodName = "initBuild") public class ZeroPaddingLayer extends NoParamLayer { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/convolutional/Cropping1D.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/convolutional/Cropping1D.java index 161851952..1e43e3031 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/convolutional/Cropping1D.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/convolutional/Cropping1D.java @@ -40,7 +40,6 @@ import org.nd4j.linalg.api.ndarray.INDArray; /** Amount of cropping to apply to both the top and the bottom of the input activations */ @Data -@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @SuperBuilder(builderMethodName = "innerBuilder") public class Cropping1D extends NoParamLayer { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/convolutional/Cropping2D.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/convolutional/Cropping2D.java index 8582874ed..cf3f6bcb6 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/convolutional/Cropping2D.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/convolutional/Cropping2D.java @@ -41,7 +41,6 @@ import org.nd4j.linalg.api.buffer.DataType; import org.nd4j.linalg.api.ndarray.INDArray; @Data -@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @SuperBuilder(builderMethodName = "innerBuilder") public class Cropping2D extends NoParamLayer { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/convolutional/Cropping3D.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/convolutional/Cropping3D.java index 58019a042..9c4e70196 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/convolutional/Cropping3D.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/convolutional/Cropping3D.java @@ -40,7 +40,6 @@ import java.util.Collection; import java.util.Map; @Data -@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @SuperBuilder(builderMethodName = "innerBuilder") public class Cropping3D extends NoParamLayer { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/misc/ElementWiseMultiplicationLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/misc/ElementWiseMultiplicationLayer.java index 4c2ccb296..65c47b7f5 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/misc/ElementWiseMultiplicationLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/misc/ElementWiseMultiplicationLayer.java @@ -42,7 +42,6 @@ import java.util.Map; @Data @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) -@NoArgsConstructor @SuperBuilder public class ElementWiseMultiplicationLayer extends org.deeplearning4j.nn.conf.layers.FeedForwardLayer { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/misc/FrozenLayerWithBackprop.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/misc/FrozenLayerWithBackprop.java index 1e1e7504a..ff9a66c2b 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/misc/FrozenLayerWithBackprop.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/misc/FrozenLayerWithBackprop.java @@ -57,6 +57,9 @@ public class FrozenLayerWithBackprop extends BaseWrapperLayerConfiguration { public static FrozenLayerWithBackpropBuilder builder(LayerConfiguration innerConfiguration) { return innerBuilder().underlying(innerConfiguration); } + public static FrozenLayerWithBackpropBuilder builder(LayerConfigurationBuilder innerConfiguration) { + return innerBuilder().underlying(innerConfiguration.build()); + } public NeuralNetConfiguration getInnerConf(NeuralNetConfiguration conf) { NeuralNetConfiguration nnc = conf.clone(); nnc.getLayerConfigurations().add(0, underlying); diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/misc/RepeatVector.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/misc/RepeatVector.java index 4eee559c0..62736066f 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/misc/RepeatVector.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/misc/RepeatVector.java @@ -39,7 +39,6 @@ import java.util.Collection; import java.util.Map; @Data -@NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @SuperBuilder diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/recurrent/Bidirectional.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/recurrent/Bidirectional.java index 7f2e6ceac..26e9e12ec 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/recurrent/Bidirectional.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/recurrent/Bidirectional.java @@ -48,7 +48,6 @@ import java.util.Map; import static org.nd4j.linalg.indexing.NDArrayIndex.interval; -@NoArgsConstructor @Data @EqualsAndHashCode(callSuper = true, exclude = {"initializer"}) @JsonIgnoreProperties({"initializer"}) diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/samediff/AbstractSameDiffLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/samediff/AbstractSameDiffLayer.java index 20d86e3d6..3377ab561 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/samediff/AbstractSameDiffLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/samediff/AbstractSameDiffLayer.java @@ -61,6 +61,7 @@ public abstract class AbstractSameDiffLayer extends LayerConfiguration { * @param regularization Regularization to apply for the network parameters/weights (excluding * biases) */ + @Getter protected List regularization; /** * The regularization for the biases only - for example {@link WeightDecay} -- SETTER -- Set the @@ -68,6 +69,7 @@ public abstract class AbstractSameDiffLayer extends LayerConfiguration { * * @param regularizationBias Regularization to apply for the network biases only */ + @Getter protected List regularizationBias; /** * Gradient updater. For example, {@link org.nd4j.linalg.learning.config.Adam} or {@link @@ -83,10 +85,11 @@ public abstract class AbstractSameDiffLayer extends LayerConfiguration { * @param biasUpdater Updater to use for bias parameters */ protected @Getter @Setter IUpdater biasUpdater; - +@Getter @Setter protected GradientNormalization gradientNormalization; +@Getter @Setter protected double gradientNormalizationThreshold = Double.NaN; - +@Getter @Setter private SDLayerParams layerParams; @Override diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/samediff/SameDiffLambdaLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/samediff/SameDiffLambdaLayer.java index 83f41e663..6ab8e4052 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/samediff/SameDiffLambdaLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/samediff/SameDiffLambdaLayer.java @@ -28,7 +28,6 @@ import org.nd4j.autodiff.samediff.SameDiff; import org.nd4j.linalg.api.ndarray.INDArray; import java.util.Map; -@NoArgsConstructor @SuperBuilder public abstract class SameDiffLambdaLayer extends SameDiffLayer { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/variational/VariationalAutoencoder.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/variational/VariationalAutoencoder.java index dce47df77..53dd8dffb 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/variational/VariationalAutoencoder.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/layers/variational/VariationalAutoencoder.java @@ -45,7 +45,6 @@ import org.nd4j.linalg.lossfunctions.ILossFunction; import org.nd4j.linalg.lossfunctions.LossFunctions; @Data -@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @SuperBuilder public class VariationalAutoencoder extends BasePretrainNetwork { diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/ocnn/OCNNOutputLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/ocnn/OCNNOutputLayer.java index 746d25aae..fb7757e87 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/ocnn/OCNNOutputLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/conf/ocnn/OCNNOutputLayer.java @@ -48,31 +48,31 @@ public class OCNNOutputLayer extends BaseOutputLayer { * The hidden layer size for the one class neural network. Note this would be nOut on a dense * layer. NOut in this neural net is always set to 1 though. */ - @Builder.Default private int hiddenLayerSize; // embedded hidden layer size aka "K" + @Builder.Default @Getter private int hiddenLayerSize; // embedded hidden layer size aka "K" /** For nu definition see the paper */ - @Builder.Default private double nu = 0.04; + @Builder.Default @Getter private double nu = 0.04; /** * The number of examples to use for computing the quantile for the r value update. This value * should generally be the same as the number of examples in the dataset */ - @Builder.Default private int windowSize = 10000; + @Builder.Default @Getter private int windowSize = 10000; /** * The initial r value to use for ocnn for definition, see the paper, note this is only active * when {@link #configureR} is specified as true */ - @Builder.Default private double initialRValue = 0.1; + @Builder.Default @Getter private double initialRValue = 0.1; /** * Whether to use the specified {@link #initialRValue} or use the weight initialization with the * neural network for the r value */ - @Builder.Default private boolean configureR = true; + @Builder.Default @Getter private boolean configureR = true; /** * Psuedo code from keras: start_time = time.time() for epoch in range(100): # Train with each * example sess.run(updates, feed_dict={X: train_X,r:rvalue}) rvalue = nnScore(train_X, w_1, w_2, * g) with sess.as_default(): rvalue = rvalue.eval() rvalue = np.percentile(rvalue,q=100*nu) * print("Epoch = %d, r = %f" % (epoch + 1,rvalue)) */ - @Builder.Default private int lastEpochSinceRUpdated = 0; + @Builder.Default @Getter @Setter private int lastEpochSinceRUpdated = 0; @Override public Layer instantiate( diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/layers/ocnn/OCNNOutputLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/layers/ocnn/OCNNOutputLayer.java index 480d49f8b..218b18884 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/layers/ocnn/OCNNOutputLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/layers/ocnn/OCNNOutputLayer.java @@ -21,8 +21,10 @@ package org.deeplearning4j.nn.layers.ocnn; +import lombok.Builder; import lombok.Getter; import lombok.Setter; +import lombok.experimental.SuperBuilder; import org.deeplearning4j.nn.api.Layer; import org.deeplearning4j.nn.conf.layers.LayerConfiguration; import org.deeplearning4j.nn.gradient.DefaultGradient; @@ -46,10 +48,12 @@ import static org.deeplearning4j.nn.layers.ocnn.OCNNParamInitializer.R_KEY; import static org.deeplearning4j.nn.layers.ocnn.OCNNParamInitializer.V_KEY; import static org.deeplearning4j.nn.layers.ocnn.OCNNParamInitializer.W_KEY; + public class OCNNOutputLayer extends BaseOutputLayer { @Setter @Getter private IActivation activation = new ActivationReLU(); + private static final IActivation relu = new ActivationReLU(); diff --git a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/layers/util/IdentityLayer.java b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/layers/util/IdentityLayer.java index 81e5707f9..19695f550 100644 --- a/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/layers/util/IdentityLayer.java +++ b/cavis-dnn/cavis-dnn-nn/src/main/java/org/deeplearning4j/nn/layers/util/IdentityLayer.java @@ -21,16 +21,21 @@ package org.deeplearning4j.nn.layers.util; import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; import org.deeplearning4j.nn.conf.inputs.InputType; import org.deeplearning4j.nn.conf.layers.samediff.SameDiffLambdaLayer; import org.nd4j.autodiff.samediff.SDVariable; import org.nd4j.autodiff.samediff.SameDiff; -@NoArgsConstructor +@SuperBuilder(builderMethodName = "innerBuilder") public class IdentityLayer extends SameDiffLambdaLayer { - public IdentityLayer(String name) { - this.name = name; + public static IdentityLayerBuilder builder() { + return innerBuilder(); + } + public static IdentityLayerBuilder builder(String name) { + return innerBuilder() + .name(name); } @Override diff --git a/cavis-native/cavis-native-lib/build.gradle b/cavis-native/cavis-native-lib/build.gradle index 8ecbeafc1..9ae949f6c 100644 --- a/cavis-native/cavis-native-lib/build.gradle +++ b/cavis-native/cavis-native-lib/build.gradle @@ -235,7 +235,10 @@ chipList.each { thisChip -> /* Get VCVARS in case we want to build CUDA * MinGW64 g++ on MSYS is used otherwise */ - if (thisChip.equals('cuda') && osdetector.os.startsWith("win") && !VISUAL_STUDIO_INSTALL_DIR.isEmpty()) { + if (thisChip.equals('cuda') && osdetector.os.startsWith("win") + && project.hasProperty("skip-native") + && !project.getProperty("skip-native").equals("true") + && !VISUAL_STUDIO_INSTALL_DIR.isEmpty()) { def proc = ["cmd.exe", "/c", "${VISUAL_STUDIO_VCVARS_CMD} > nul && set"].execute() it.environmentVariables = it.environmentVariables ?: [:] def lines = proc.text.split("\\r?\\n") @@ -329,7 +332,8 @@ chipList.each { thisChip -> thisTask.properties = getBuildPlatform( thisChip, thisTask ) - if(thisChip.equals('cuda') && osdetector.os.startsWith("win") && !VISUAL_STUDIO_INSTALL_DIR.isEmpty()) { + if(thisChip.equals('cuda') && osdetector.os.startsWith("win") && project.hasProperty("skip-native") + && !project.getProperty("skip-native").equals("true") && !VISUAL_STUDIO_INSTALL_DIR.isEmpty()) { def proc = ["cmd.exe", "/c", "${VISUAL_STUDIO_VCVARS_CMD} > nul && where.exe cl.exe"].execute() def outp = proc.text def cl = outp.replace("\\", "\\\\").trim() diff --git a/vsconfig.gradle b/vsconfig.gradle index a247ceb10..615b07bc5 100644 --- a/vsconfig.gradle +++ b/vsconfig.gradle @@ -28,7 +28,9 @@ ****************************************************************************/ if (!hasProperty("VISUAL_STUDIO_INSTALL_DIR") && osdetector.os.equals("windows")) { - configureVisualStudio() + if (project.hasProperty("skip-native") && !project.getProperty("skip-native").equals("true")) { + configureVisualStudio() + } } def configureVisualStudio() {