PyTorch Conv1d [With 12 Amazing Examples]

The PyTorch conv1d is defined as a one-dimensional convolution that is applied over an input signal collected from some input planes. In detail, we will discuss Conv1d using PyTorch in python. And additionally, we will also cover different examples related to PyTorch Conv1d. And we will cover these topics.

  • PyTorch Conv1d
  • PyTorch Conv1d example
  • PyTorch functional Conv1d
  • PyTorch Conv1d padding
  • PyTorch Conv1d group
  • PyTorch Conv1d dilation
  • PyTorch Conv1d in CNN
  • PyTorch Conv1d weight
  • PyTorch Conv1d transpose
  • PyTorch Conv1d parameters
  • PyTorch Conv1d bias
  • PyTorch Conv1d input channels and output channels

PyTorch Conv1d

In this section, we will learn about the PyTorch Conv1d in python.

The PyTorch conv1d is defined as a one-dimensional convolution that is applied over an input signal collected from some input planes.

Syntax:

The syntax of PyTorch Conv1d is:

torch.nn.Conv1d(in_channels, out_channels, Kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None)

Parameters:

The following are the parameters of PyTorch Conv1d:

  • in_channels is used as the number of channels in the input image.
  • out_channels is used as the number of channels produced by the convolution.
  • Kernel_size is used to define the size of the convolving kernel.
  • stride is used to control the stride for the cross-correlation and a single number or a one-element tuple.
  • padding is used to control the amount of padding applied to the input. It can be either string or a tuple of giving the amount of implicit padding. The default value of padding is 0.
  • dilation is used to control the spacing between the kernel elements and the default value of the dilation is 1.
  • groups are used to control the connection between the inputs and outputs. The default value of groups is 1.
  • bias: The default value of the bias is True. If it is true it adds a learnable bias to the output. If it is false it does not add any learnable bias to the output.

So, with this, we understood the PyTorch Conv1d.

Read: Cross Entropy Loss PyTorch

PyTorch Conv1d example

In this section, we will learn how to implement the PyTorch Conv1d with the help of an example.

The PyTorch Conv1d is used to generate a convolutional kernel that twists together with a layer input above a single conceptual dimension that makes a tensor of outputs.

Code:

In the following code, firstly we will import all the necessary libraries such as import torch, import torch .nn as nn.

  • c = nn.Conv1d(18, 35, 5, stride=2) Here we are using nn.Conv1d() function.
  • input = torch.randn(22, 18, 52) is used to declaring a variable by using torch.randn() function.
  • output = c(input) is used to describe the output variable.
  • print(output) is used to print the output by using the print() function.
# Import Library
import torch
import torch.nn as nn
# Using nn.Conv1d() function
c = nn.Conv1d(18, 35, 5, stride=2)
# Declaring a input variable
input = torch.randn(22, 18, 52)
output = c(input)
# Print output
print(output)

Output:

After running the above code, we get the following output in which we can see that the PyTorch Conv1d values are printed on the screen.

PyTorch Conv1d example
PyTorch Conv1d example

So, with this, we understood the PyTorch Conv1d with the help of an example.

Read: PyTorch nn linear + Examples

PyTorch functional Conv1d

In this section, we will learn about the PyTorch functional Conv1d in python.

The PyTorch functional Conv1d applies a 1d convolution above an input signal collected from some input planes.

Syntax:

The syntax of the PyTorch functional Conv1d is:

torch.nn.functional.conv1d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)

Parameters:

The following are the parameters of the PyTorch functional Conv1d:

  • input: Input is defined as an input tensor of shape(minibatch, in_channels,iW).
  • weight: Weight is defined as a filter of shape(out_channels).
  • bias: Bias is defined as an optional bias tensor of shape(out_channels). The default value of bias is None.
  • stride: Stride of the convolving kernel. The default value of stride is 1.
  • padding: is used to control the amount of padding applied to the input. It can be either string or a tuple of giving the amount of implicit padding. The default value of padding is 0.
  • dilation: is used to control the spacing between the kernel elements and the default value of the dilation is 1.
  • groups are used to control the connection between the inputs and outputs. The default value of groups is 1.
READ:  Matplotlib 2d surface plot

So, with this, we understood the PyTorch functional Conv1d.

Read: PyTorch Batch Normalization

PyTorch Conv1d padding

In this section, we will learn about the PyTorch Conv1d padding in python.

The PyTorch Conv1d padding is defined as a parameter that is used to control the amount of padding applied to the input. It can be either string or a tuple of giving the amount of implicit padding. The default value of padding is 0.

Code:

In the following code, firstly we will import the torch library as import torch.

  • inputs = torch.rand([42, 42, 105]): Here we are describing the input variable by using torch.rand() function.
  • n = torch.nn.Conv1d(42, 12, kernel_size=3, stride=2, padding=3): Here we are describing a variable by using square kernels and equal stride with padding.
  • print(output) is used to print the output with the help of the print() function.
# Import library
import torch

# Describe a variable
inputs = torch.rand([42, 42, 105])
# Describe a variable by using square kernels and equal stride with padding
n = torch.nn.Conv1d(42, 12, kernel_size=3, stride=2, padding=3)
output= n(inputs)
# Print the output
print(output)
print(output.shape)

Output:

After running the above code, we get the following output in which we can see that the PyTorch Conv1d padding values are printed on the screen.

PyTorch Conv1d padding
PyTorch Conv1d padding

Also, check: Keras Vs PyTorch – Key Differences

PyTorch Conv1d group

In this section, we will learn about the PyTorch Conv1d group in python.

The PyTorch Conv1d group is defined as a parameter that is used to control the connection between the inputs and outputs. The default value of groups is 1.

Code:

In the following code, firstly we will import the torch library as import torch.

  • inputs = torch.rand([42, 42, 102]: Here we are describing the input variable by using torch.rand() function.
  • x = torch.nn.Conv1d(42, 12, kernel_size=3, stride=2): Here we are describing a variable by using square kernels and equal stride with padding.
  • print(output) is used to print the output with the help of the print() function.
# Import library
import torch

# Describe a variable
inputs = torch.rand([42, 42, 102])
# Describing a variable by using square kernels and equal stride
x = torch.nn.Conv1d(42, 12, kernel_size=3, stride=2)
output = x(inputs)
# Print the output
print(output)

Output:

In the below output, you can see that the PyTorch Conv1d values are printed on the screen.

PyTorch conv1d group
PyTorch conv1d group

So, with this, we understood the PyTorch Conv1d group.

Read: PyTorch Load Model + Examples

PyTorch Conv1d dilation

In this section, we will learn about the PyTorch Conv1d dilation in python.

The PyTorch Conv1d dilation is defined as a parameter that is used to control the spacing between the kernel elements and the default value of the dilation is 1.

Code:

In the following code, firstly we will import the torch library such as an import torch.

  • inputs = torch.rand([42, 42, 102]): Here we are describing the input variable by using torch.rand() function.
  • x = torch.nn.Conv1d(42, 12, kernel_size=3, stride=2): Here we are describing a variable by using square kernels and equal stride with padding.
  • print(output) is used to print the output with the help of the print() function.
# Import library
import torch

# Describe a variable
inputs = torch.rand([42, 42, 102])
# Describing a variable by using square kernels and equal stride
x = torch.nn.Conv1d(42, 12, kernel_size=3, stride=2)
output = x(inputs)
# Print the output
print(output)

Output:

After running the above code, we get the following output in which we can see that the PyTorch Conv1d dilation values are printed on the screen.

PyTorch Conv1d dilation
PyTorch Conv1d dilation

So, with this, we understood the PyTorch Conv1d dilation.

Read: PyTorch fully connected layer

PyTorch Conv1d in CNN

In this section, we will learn about the PyTorch Conv1d in CNN.

Before moving forward we should have some piece of knowledge about the CNN( Convolution Neural Network).

Convolutional Neural Network is a type of artificial neural network that is used in image recognition.

Here we are using Conv1d to deal with a convolutional neural network. The Conv1d() function applies 1d convolution above the input. The Conv1d awaits the input to be the shape of (batch_size and input_channels) etc.

Code:

In the following code, firstly we will import all the necessary libraries such as import numpy as np, import torch, import torch.nn as nn, import torch.optim as optim, and from torch.utils.data import Dataset, Dataloader.

  • inp1 = torch.tensor([2, 4, 6, 8, 10, 12, 14, 16, 18, 20], dtype = torch.float): Here we are defining the input tensor by using torch.tensor() function.
  • inp1 = inp1.unsqueeze(0).unsqueeze(0) is used to convert the input to the tensor.
  • cnnconv = nn.Conv1d(in_channels=1, out_channels=1, kernel_size=3, stride=1) is used to applies the Conv1d over the input.
  • print(“cnn1d: \n”) is used to print the CNN conv1d by using print() function.
# Import Library
import numpy as np
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import Dataset, DataLoader

# Define Input tensor
inp1 = torch.tensor([2, 4, 6, 8, 10, 12, 14, 16, 18, 20], dtype = torch.float)
inp2 = torch.tensor([[2, 4, 6, 8, 10], [12, 14, 16, 18, 20]], dtype = torch.float)
inp2img = torch.tensor([[[2, 4, 6, 8, 10, 12, 14, 18, 20, 24], [2, 4, 6, 8, 10, 12, 14, 16, 18, 20], [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]], [[2, 4, 6, 8, 10, 12, 14, 16, 18, 20], [2, 4, 6, 8, 10, 12, 14, 16, 18, 20], [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]], [[2, 4, 6, 8, 10, 12, 14, 16, 18, 20], [2, 4, 6, 8, 10, 12, 14, 16, 18, 20], [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]]], dtype = torch.float)

# Convert the input into tensor
inp1 = inp1.unsqueeze(0).unsqueeze(0)
inp1.shape

# Applies 1d convolution over the input
cnnconv = nn.Conv1d(in_channels=1, out_channels=1, kernel_size=3, stride=1)
print("cnn1d: \n")
print(cnnconv(inp1).shape, "\n")
print(cnnconv(inp1))

Output:

READ:  Training Neural Network in TensorFlow

After running the above code, we get the following output in which we can see that the PyTorch Conv1d in CNN values is printed on the screen.

PyTorch Conv1d in CNN
PyTorch Conv1d in CNN

So, with this, we understood the PyTorch Conv1d in CNN.

Read: PyTorch Binary Cross Entropy

PyTorch Conv1d weight

In this section, we will learn about the PyTorch Conv1d weight in python.

The PyTorch Conv1d weight is used to perform the convolution to a 1d data and some additional options like padding.

Code:

In the following code, firstly we are using the torch module such as import torch.

  • inp = torch.ones(1,1,6): Here we are describing the input variable by using torch.ones() function.
  • print(“Input = “,inp) is used to print the input with the help of the print() function.
  • m = torch.nn.Conv1d(in_channels = 1, out_channels = 1, kernel_size = 3): Here we are using variable by using torch.nn.Conv1d() function.
  • print(“Parameters = “,list(m.parameters())) is used to print the parameter list.
  • print(“Weight = “,m.weight) is used to print the weight.
  • print(“Output = “,out) is used to print the output by using print() function.
# Import library
import torch

# Describe the input variable
inp = torch.ones(1,1,6)

# Print input
print("Input = ",inp)

m = torch.nn.Conv1d(in_channels = 1, out_channels = 1, kernel_size = 3)

# Print the parameter list
print("net = ",m)
print("Parameters = ",list(m.parameters()))
# Print the weight
print("Weight = ",m.weight)


out = m(inp)

print("Output = ",out)

Output:

After running the above code, we get the following output in which we can see that the PyTorch Conv1d weight value is printed on the screen.

PyTorch Conv1d weight
PyTorch Conv1d weight

This is how we can use the PyTorch Conv1d weight.

Read: PyTorch Dataloader + Examples

PyTorch Conv1d transpose

In this section, we will learn about the PyTorch Conv1d transpose in python.

The PyTorch Convtranspose1d applies a 1d transpose convolution operation over an input image collected from some input planes.

Syntax:

The Syntax of PyTorch Conv1d transpose:

torch.nn.ConvTranspose1d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True, dilation=1, padding_mode='zeros', device=None, dtype=None)

Parameters:

The following are the parameters of the PyTorch Conv1d transpose

  • in_channels is used as several channels in the input images.
  • out_channels is used as several channels produced by the convolutions.
  • kernel_size is used as the size of the convolving kernel.
  • stride is used to control the stride from the cross-correlation.
  • padding: It controls the amount of implicit zero padding.
  • output_padding: It controls the additional size added to one side of the output shape.
  • dilation: It controls the spacing between the kernel points.
  • groups: It controls the connections between the inputs and outputs.

So, with this, we understood the PyTorch Conv1d transpose.

Read: PyTorch Early Stopping + Examples

PyTorch Conv1d parameters

In this section, we will learn about the PyTorch Conv1d parameters in python.

Before moving forward we should have a piece of knowledge about parameters. Parameters are measurable factors accepted as one of the sets that describe the system or set the condition of its operations.

Code:

In the following code, we will import all the necessary libraries such as import torch, import torch.nn as nn.

  • c = nn.Conv1d(20, 37, 5, stride=2): Here we are describing the variable by using nn.Conv1d() function with square kernels and equal stride.
  • inp = torch.randn(24, 20, 54): Here we are describing the input variable by using torch.randn() function.
  • out = c(inp) is used to describe the output variable.
  • print(out) is used to print the output by using the print() function.
# Importing Libraries
import torch
import torch. nn as nn

# Describing the variable by using nn.Conv1d() function with square kernels and equal stride
c = nn.Conv1d(20, 37, 5, stride=2)

# Describe the variable
inp = torch.randn(24, 20, 54)

# Declare the output variable
out = c(inp)
# Print output
print(out)

Output:

READ:  Python Get Current Folder Name

In the below output, you can see that the PyTorch Conv1d Parameters values are printed on the screen.

PyTorch Conv1d parameters
PyTorch Conv1d parameters

So, with this, we understood the PyTorch Conv1d parameters.

Read: PyTorch MSELoss – Detailed Guide

PyTorch Conv1d bias

In this section, we will learn about the PyTorch Conv1d bias in python.

The PyTorch Conv1d bias is defined as an optional bias tensor of shape and the default value of bias is None.

Code:

In the following code, firstly we will import the torch library such as import torch.

  • input = torch.ones(2,2,7): Here we are describing the input variable by using torch.ones() function.
  • m = torch.nn.Conv1d(in_channels = 1, out_channels = 1, kernel_size = 3): Here we are using torch.nn.Conv1d() function.
  • print(“Parameters = “,list(m.parameters())) is used to print the list of parameters.
  • print(“bias = “,m.bias) is used to print the bias with the help of print() function.
# Import library
import torch

# Describe the input variable
input = torch.ones(2,2,7)

print("Input = ",input)

# Using conv1d module
m = torch.nn.Conv1d(in_channels = 1, out_channels = 1, kernel_size = 3)

# Print the list of the parametrs
print("Net = ",m)
print("Parameters = ",list(m.parameters()))

# Print the bias
print("bias = ",m.bias)

Output:

After running the above code, we get the following output in which we can see that the PyTorch Conv1d bias value is printed on the screen.

PyTorch Conv1d bias
PyTorch Conv1d bias

So, with this, we understood the PyTorch Conv1d bias.

Read: PyTorch Add Dimension

PyTorch Conv1d input channels and output channels

In this section, we will learn about the PyTorch Conv1d input channels and output channels in python.

The PyTorch Conv1d input channels are used as the number of channels in the input image.

The PyTorch Conv1d output channels are used as the number of channels produced by the convolution.

Code:

In the following code, firstly we will import all the necessary libraries such as import torch, import Variable from torch.autograd, and import torch.nn.functional.

  • class model(nn.Module): Here we are creating a model class by using the init() and forward() methods.
  • def numflat_featurs(self, y): Here we are defining the numflat_features.
  • model = model(): Here we are initializing the model.
  • print(model) is used to print the model by using the print() function.
# Importing Libraries
import torch
from torch.autograd import Variable
import torch.nn as nn
import torch.nn.functional as fun

# Create model class
class model(nn.Module):

    def __init__(self):
        super(model, self).__init__()
        # 1 input image channel, 8 output channels, 7x7 square convolution
        self.conv1 = nn.Conv1d(1, 8, 7)
        self.conv2 = nn.Conv1d(8, 18, 7)
        # an affine operation: y = Wx + b
        self.fc1 = nn.Linear(18 * 7 * 7, 140)
        self.fc2 = nn.Linear(140, 86)
        self.fc3 = nn.Linear(86, 12)

    def forward(self, y):
        # Max pooling over a (2, 2) win
        y = fun.max_pool2d(fun.relu(self.conv1(y)), (2, 2))

        y = fun.max_pool2d(fun.relu(self.conv2(y)), 2)
        y = y.view(-1, self.numflat_featurs(y))
        y = fun.relu(self.fc1(y))
        y = fun.relu(self.fc2(y))
        y = self.fc3(y)
        return y

    def numflat_featurs(self, y):
      # all dimensions except the batch dimension
        size = y.size()[1:]  
        numfeaturs = 1
        for i in size:
            numfeaturs *= i
        return numfeaturs

# Instantiate the model
model = model()
# Print the model
print(model)

Output:

After running the above code, we get the following output in which we can see that the PyTorch Conv1d input channels and output channels are printed on the screen.

PyTorch Conv1d input channels and output channels
PyTorch Conv1d input channels and output channels

So, with this, we understood the PyTorch Conv1d input channels and output channels.

Also, take a look at some more PyTorch tutorials.

  • PyTorch Hyperparameter Tuning
  • Introduction to PyTorch Lenet
  • PyTorch Linear Regression
  • PyTorch Activation Function
  • PyTorch Reshape Tensor

So, in this tutorial, we discussed PyTorch Conv1d and we have also covered different examples related to its implementation. Here is the list of examples that we have covered.

  • PyTorch Conv1d
  • PyTorch Conv1d example
  • PyTorch functional Conv1d
  • PyTorch Conv1d padding
  • PyTorch Conv1d group
  • PyTorch Conv1d dilation
  • PyTorch Conv1d in CNN
  • PyTorch Conv1d weight
  • PyTorch Conv1d transpose
  • PyTorch Conv1d parameters
  • PyTorch Conv1d bias
  • PyTorch Conv1d input channels and output channels