     ///   - filter: The 3-D convolution kernel `[width, inputChannels, outputChannels]`.
     ///   - bias: The bias vector `[outputChannels]`.
     ///   - activation: The element-wise activation function.
-    ///   - stride: The stride of the sliding window for temporal dimension.
-    ///   - padding: The padding algorithm for convolution.
-    ///   - dilation: The dilation factor for temporal dimension.
+    ///   - stride: The stride of the sliding window for the temporal dimension.
+    ///   - padding: The padding algorithm for convolution.
+    ///   - dilation: The dilation factor for the temporal dimension.
     public init(
         filter: Tensor<Scalar>,
         bias: Tensor<Scalar>,
-        activation: @escaping Activation,
-        stride: Int,
-        padding: Padding,
-        dilation: Int
+        activation: @escaping Activation = identity,
+        stride: Int = 1,
+        padding: Padding = .valid,
+        dilation: Int = 1
     ) {
         self.filter = filter
         self.bias = bias

    /// - Parameters:
    ///   - filterShape: The 3-D shape of the filter, representing
    ///     `[width, inputChannels, outputChannels]`.
    ///   - stride: The stride of the sliding window for temporal dimension.
    ///   - padding: The padding algorithm for convolution.
    ///   - dilation: The dilation factor for temporal dimension.
    ///   - activation: The element-wise activation function.
    ///   - generator: The random number generator for initialization.
    ///

    public init(
        filter: Tensor<Scalar>,
        bias: Tensor<Scalar>,
        activation: @escaping Activation = identity,
        strides: (Int, Int) = (1, 1),
        padding: Padding = .valid,
        dilations: (Int, Int) = (1, 1)
    ) {
        self.filter = filter
        self.bias = bias
