这个 Github回购 包含DL4J,Caffe,Tensorflow,Torch之间相同模型的比较。
以下是代码翻译方式的快速示例。更多信息可以在中找到 DL4J的例子 :
int learningRate = 0.1; int l2 = 0.005; int intputHeight = 28; int inputWidth = 28; int channels = 1; MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder() .seed(seed) .iterations(iterations) .regularization(false).l2(l2) .learningRate(learningRate) .list() .layer(0, new ConvolutionLayer.Builder(new int[]{2,2}, new int[] {1,1}) .name("myLayer1") .activation("relu").dropOut(0.2).nOut(20) .biasLearningRate(2*learningRate).weightInit(WeightInit.RELU) .build()) .layer(1, new OutputLayer.Builder() .name("myLayer4").nOut(10) .activation("softmax").l2(1 * l2).biasLearningRate(2*learningRate) .weightInit(WeightInit.XAVIER).build()) .setInputType(InputType.convolutionalFlat(inputHeight,inputWidth,channels)) .build();
没有自动化的方法可以做到这一点,但只为少数几个laayers映射构建器DSL应该不难。这里有一个最基本的例子: https://github.com/deeplearning4j/dl4j-examples/blob/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/convolution/LenetMnistExample.java
你可以看到相同的原语,例如:stride,padding,xavier,biasInit all in the。
我们即将推出的keras导入可能是您搭建caffe的一种方式 - > keras - > dl4j虽然。
编辑:我不打算为你建造它。 (我不确定这是不是你要找的)
Dl4j已经有了正确的原语。它没有variance_norm的输入层:在传入之前对输入使用零均值和单位方差归一化。
如果您只是阅读javadoc,我们将偏置Init作为配置的一部分: http://deeplearning4j.org/doc