public class Conv1d extends Convolution
Conv1d layer works similar to Convolution layer with the exception of the
number of dimension it operates on being only one, which is LayoutType.WIDTH. The channel
of the input data may be more than one, depending on what data is processed. Each filter slides
through the data with only one direction of movement along the dimension itself.
Commonly, this kind of convolution layer, as proposed in this paper is used in tasks utilizing serial
data, enabling convolutional processing of 1-dimensional data such as time-series data (stock
price, weather, ECG) and text/speech data without the need of transforming it to 2-dimensional
data to be processed by Conv2d, though this is quite a common technique as well.
The input to a Conv1d is an NDList with a single 3-D NDArray. The layout of the NDArray must be "NCW". The
shapes are
data: (batch_size, channel, width)
weight: (num_filter, channel, kernel[0])
bias: (num_filter,)
out: (batch_size, num_filter, out_width) out_width = f(width, kernel[0], pad[0], stride[0], dilate[0]) where f(x, k, p, s, d) = floor((x + 2 * p - d * (k - 1) - 1)/s) + 1
Both weight and bias are learn-able parameters.
Convolution| Modifier and Type | Class and Description |
|---|---|
static class |
Conv1d.Builder
|
Convolution.ConvolutionBuilder<T extends Convolution.ConvolutionBuilder>bias, dilation, filters, groups, includeBias, kernelShape, padding, stride, weightchildren, inputNames, inputShapes, parameters, version| Modifier and Type | Method and Description |
|---|---|
static Conv1d.Builder |
builder()
Creates a builder to build a
Conv1d. |
static NDList |
conv1d(NDArray input,
NDArray weight)
Applies 1D convolution over an input signal composed of several input planes.
|
static NDList |
conv1d(NDArray input,
NDArray weight,
NDArray bias)
Applies 1D convolution over an input signal composed of several input planes.
|
static NDList |
conv1d(NDArray input,
NDArray weight,
NDArray bias,
Shape stride)
Applies 1D convolution over an input signal composed of several input planes.
|
static NDList |
conv1d(NDArray input,
NDArray weight,
NDArray bias,
Shape stride,
Shape padding)
Applies 1D convolution over an input signal composed of several input planes.
|
static NDList |
conv1d(NDArray input,
NDArray weight,
NDArray bias,
Shape stride,
Shape padding,
Shape dilation)
Applies 1D convolution over an input signal composed of several input planes.
|
static NDList |
conv1d(NDArray input,
NDArray weight,
NDArray bias,
Shape stride,
Shape padding,
Shape dilation,
int groups)
Applies 1D convolution over an input signal composed of several input planes.
|
protected LayoutType[] |
getExpectedLayout()
Returns the expected layout of the input.
|
protected java.lang.String |
getStringLayout()
Returns the string representing the layout of the input.
|
protected int |
numDimensions()
Returns the number of dimensions of the input.
|
beforeInitialize, forwardInternal, getOutputShapes, loadMetadata, prepareaddChildBlock, addParameter, cast, clear, describeInput, forward, forward, forwardInternal, getChildren, getDirectParameters, getParameters, initialize, initializeChildBlocks, isInitialized, loadParameters, readInputShapes, saveInputShapes, saveMetadata, saveParameters, setInitializer, setInitializer, setInitializer, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitforward, validateLayoutprotected LayoutType[] getExpectedLayout()
getExpectedLayout in class Convolutionprotected java.lang.String getStringLayout()
getStringLayout in class Convolutionprotected int numDimensions()
numDimensions in class Convolutionpublic static NDList conv1d(NDArray input, NDArray weight)
input - the input NDArray of shape (batchSize, inputChannel, width)weight - filters NDArray of shape (outChannel, inputChannel/groups, width)public static NDList conv1d(NDArray input, NDArray weight, NDArray bias)
input - the input NDArray of shape (batchSize, inputChannel, width)weight - filters NDArray of shape (outChannel, inputChannel/groups, width)bias - bias NDArray of shape (outChannel)public static NDList conv1d(NDArray input, NDArray weight, NDArray bias, Shape stride)
input - the input NDArray of shape (batchSize, inputChannel, width)weight - filters NDArray of shape (outChannel, inputChannel/groups, width)bias - bias NDArray of shape (outChannel)stride - the stride of the convolving kernel: Shape(width)public static NDList conv1d(NDArray input, NDArray weight, NDArray bias, Shape stride, Shape padding)
input - the input NDArray of shape (batchSize, inputChannel, width)weight - filters NDArray of shape (outChannel, inputChannel/groups, width)bias - bias NDArray of shape (outChannel)stride - the stride of the convolving kernel: Shape(width)padding - implicit paddings on both sides of the input: Shape(width)public static NDList conv1d(NDArray input, NDArray weight, NDArray bias, Shape stride, Shape padding, Shape dilation)
input - the input NDArray of shape (batchSize, inputChannel, width)weight - filters NDArray of shape (outChannel, inputChannel/groups, width)bias - bias NDArray of shape (outChannel)stride - the stride of the convolving kernel: Shape(width)padding - implicit paddings on both sides of the input: Shape(width)dilation - the spacing between kernel elements: Shape(width)public static NDList conv1d(NDArray input, NDArray weight, NDArray bias, Shape stride, Shape padding, Shape dilation, int groups)
input - the input NDArray of shape (batchSize, inputChannel, width)weight - filters NDArray of shape (outChannel, inputChannel/groups, width)bias - bias NDArray of shape (outChannel)stride - the stride of the convolving kernel: Shape(width)padding - implicit paddings on both sides of the input: Shape(width)dilation - the spacing between kernel elements: Shape(width)groups - split input into groups: input channel(input.size(1)) should be divisible by
the number of groupspublic static Conv1d.Builder builder()
Conv1d.