|
Java example source code file (ConvolutionLayer.java)
The ConvolutionLayer.java Java example source codepackage org.deeplearning4j.nn.conf.layers; import lombok.*; import org.nd4j.linalg.convolution.Convolution; /** * @author Adam Gibson */ @Data @NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) public class ConvolutionLayer extends FeedForwardLayer { protected Convolution.Type convolutionType; protected int[] kernelSize; // Square filter protected int[] stride; // Default is 2. Down-sample by a factor of 2 protected int[] padding; private ConvolutionLayer(Builder builder) { super(builder); this.convolutionType = builder.convolutionType; if(builder.kernelSize.length != 2) throw new IllegalArgumentException("Kernel size of should be rows x columns (a 2d array)"); this.kernelSize = builder.kernelSize; if(builder.stride.length != 2) throw new IllegalArgumentException("Stride should include stride for rows and columns (a 2d array)"); this.stride = builder.stride; if(builder.padding.length != 2) throw new IllegalArgumentException("Padding should include padding for rows and columns (a 2d array)"); this.padding = builder.padding; } @Override public ConvolutionLayer clone() { ConvolutionLayer clone = (ConvolutionLayer) super.clone(); if(clone.kernelSize != null) clone.kernelSize = clone.kernelSize.clone(); if(clone.stride != null) clone.stride = clone.stride.clone(); if(clone.padding != null) clone.padding = clone.padding.clone(); return clone; } @AllArgsConstructor public static class Builder extends FeedForwardLayer.Builder<Builder> { private Convolution.Type convolutionType = Convolution.Type.VALID; private int[] kernelSize = new int[] {5,5}; private int[] stride = new int[] {1,1}; private int[] padding = new int[] {0, 0}; public Builder(int[] kernelSize, int[] stride, int[] padding) { this.kernelSize = kernelSize; this.stride = stride; this.padding = padding; } public Builder(int[] kernelSize, int[] stride) { this.kernelSize = kernelSize; this.stride = stride; } public Builder(int... kernelSize) { this.kernelSize = kernelSize; } public Builder() {} public Builder convolutionType(Convolution.Type convolutionType) { this.convolutionType = convolutionType; return this; } /** * Size of the convolution * rows/columns * @param kernelSize the height and width of the * kernel * @return */ public Builder kernelSize(int... kernelSize){ this.kernelSize = kernelSize; return this; } public Builder stride(int... stride){ this.stride = stride; return this; } public Builder padding(int... padding){ this.padding = padding; return this; } @Override @SuppressWarnings("unchecked") public ConvolutionLayer build() { return new ConvolutionLayer(this); } } } Other Java examples (source code examples)Here is a short list of links related to this Java ConvolutionLayer.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.