PyTorch conv1d определяется как одномерная свертка, которая применяется к входному сигналу, собранному из некоторых входных плоскостей.

Синтаксис:

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)

Ниже приведены параметры PyTorch Conv1d:

  • in_channels используется как количество каналов во входном изображении.
  • out_channels используется как количество каналов, созданных сверткой.
  • Kernel_size используется для определения размера сверточного ядра.
  • шаг используется для управления шагом для взаимной корреляции и одного числа или кортежа из одного элемента.
  • дополнение используется для управления количеством заполнения, применяемого к входным данным. Это может быть строка или кортеж с указанием количества неявного заполнения. Значение заполнения по умолчанию — 0.
  • расширение используется для управления расстоянием между элементами ядра, а значение расширения по умолчанию равно 1.
  • группы используются для управления соединением между входами и выходами. Значение групп по умолчанию — 1.
  • offset: значение смещения по умолчанию — True. Если это правда, это добавляет обучаемую предвзятость к выходным данным. Если оно ложно, это не добавляет к выходным данным никакой обучаемой предвзятости.
Содержание

Пример

PyTorch Conv1d используется для генерации сверточного ядра, которое объединяется с входными данными слоя над одним концептуальным измерением, образуя тензор выходных данных.

В следующем коде сначала мы импортируем все необходимые библиотеки, такие как import torch, import torch .nn как nn.

  • c = nn.Conv1d(18, 35, 5, шаг=2) Здесь мы используем функцию nn.Conv1d().
  • input = torch.randn(22, 18, 52) используется для объявления переменной с помощью функции torch.randn().
  • conclusion = c(entrance) используется для описания выходной переменной.
  • print(output) используется для печати вывода с помощью функции print().
# 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)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значения PyTorch Conv1d печатаются на экране.

Пример PyTorch Conv1d

Функционал

Функционал PyTorch Conv1d применяет 1d-свертку над входным сигналом, собранным из некоторых входных плоскостей.

Синтаксис функционала PyTorch Conv1d:

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

Ниже приведены параметры функционала PyTorch Conv1d:

  • input: ввод определяется как входной тензор формы(минибатч, in_channels,iW).
  • weight: Вес определяется как фильтр формы(out_channels).
  • bias: смещение определяется как необязательный тензор смещения формы(out_channels). Значение смещения по умолчанию — Нет.
  • stride: Шаг свертывающегося ядра. Значение шага по умолчанию — 1.
  • дополнение: используется для управления количеством заполнения, применяемого к входным данным. Это может быть строка или кортеж с указанием количества неявного заполнения. Значение заполнения по умолчанию — 0.
  • padding: используется для управления расстоянием между элементами ядра, значение расширения по умолчанию равно 1.
  • группы используются для управления соединением между входами и выходами. Значение групп по умолчанию — 1.

Заполнение Conv1d

Заполнение PyTorch Conv1d определяется как параметр, который используется для управления размером заполнения, применяемого к входным данным. Это может быть строка или кортеж с указанием количества неявного заполнения. Значение заполнения по умолчанию — 0.

В следующем коде сначала мы импортируем библиотеку как импорт torch.

  • inputs = torch.rand([42, 42, 105]): здесь мы описываем входную переменную с помощью функции torch.rand().
  • n = torch.nn.Conv1d(42, 12, kernel_size=3, шаг=2, заполнение=3): здесь мы описываем переменную, используя квадратные ядра и равный шаг с заполнением.
  • print(output) используется для печати вывода с помощью функции print().
# 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)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором мы видим, что значения заполнения PyTorch Conv1d печатаются на экране.

Заполнение PyTorch Conv1d

Группа

Группа PyTorch Conv1d определяется как параметр, который используется для управления соединением между входами и выходами. Значение групп по умолчанию — 1.

В следующем коде сначала мы импортируем библиотеку факела как импорт факела.

  • inputs = torch.rand([42, 42, 102]: Здесь мы описываем входную переменную с помощью функции torch.rand().
  • x = torch.nn.Conv1d(42, 12, kernel_size=3, stride=2): здесь мы описываем переменную, используя квадратные ядра и равный шаг с дополнением.
  • print(output) используется для печати вывода с помощью функции print().
# 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)

Выход:

В приведенном ниже выводе вы можете видеть, что значения PyTorch Conv1d печатаются на экране.

Группа PyTorch conv1d

Расширение

Расширение PyTorch Conv1d определяется как параметр, который используется для управления расстоянием между элементами ядра, а значение расширения по умолчанию равно 1.

В следующем коде сначала мы импортируем библиотеку, например, импорт torch:

  • inputs = torch.rand([42, 42, 102]): здесь мы описываем входную переменную с помощью функции torch.rand().
  • x = torch.nn.Conv1d(42, 12, kernel_size=3, stride=2): здесь мы описываем переменную, используя квадратные ядра и равный шаг с дополнением.
  • print(output) используется для печати вывода с помощью функции print().
# 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)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором мы видим, что значения расширения PyTorch Conv1d печатаются на экране.

Расширение PyTorch Conv1d

Conv1d в CNN

Прежде чем двигаться дальше, мы должны иметь некоторые знания о CNN(нейронной сети свертки).

Сверточная нейронная сеть — это тип искусственной нейронной сети, которая используется для распознавания изображений.

Здесь мы используем Conv1d для работы со сверточной нейронной сетью. Функция Conv1d() применяет 1d свертку над входными данными. Conv1d ожидает ввода в форме (batch_size и input_channels) и т. д.

В следующем коде сначала мы импортируем все необходимые библиотеки, такие как импорт numpy как np, импорт torch, импорт torch.nn как nn, импорт torch.optim как optim и из torch.utils.data импорт набора данных, Dataloader:

  • inp1 = torch.tensor([2, 4, 6, 8, 10, 12, 14, 16, 18, 20], dtype = torch.float): Здесь мы определяем входной тензор с помощью функции torch.tensor(). .
  • inp1 = inp1.unsqueeze(0).unsqueeze(0) используется для преобразования входных данных в тензор.
  • cnnconv = nn.Conv1d(in_channels=1, out_channels=1, kernel_size=3, stride=1) используется для применения Conv1d к входным данным.
  • print(«cnn1d: \n») используется для печати CNN conv1d с помощью функции print().
# 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))

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значения PyTorch Conv1d в CNN печатаются на экране.

PyTorch Conv1d в CNN

Вес конверсии

Вес PyTorch Conv1d используется для выполнения свертки к данным 1d и некоторых дополнительных опций, таких как заполнение.

В следующем коде сначала мы используем модуль torch:

  • inp = torch.ones(1,1,6): Здесь мы описываем входную переменную с помощью функции torch.ones().
  • print(«Input = «,inp) используется для печати входных данных с помощью функции print().
  • m = torch.nn.Conv1d(in_channels = 1, out_channels = 1, kernel_size = 3): здесь мы используем переменную с помощью функции torch.nn.Conv1d().
  • print(«Parameters = «,list(m.parameters())) используется для печати списка параметров.
  • print(«Weight = «,m.weight) используется для печати веса.
  • print(«Output = «,out) используется для печати вывода с помощью функции print().
# 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)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значение веса PyTorch Conv1d печатается на экране.

Вес конверсии PyTorch Conv1d

Транспонирование

PyTorch Convtranspose1d применяет операцию транспонирования 1d к входному изображению, собранному из некоторых входных плоскостей.

Синтаксис:

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)

Ниже приведены параметры транспонирования PyTorch Conv1d:

  • in_channels используется в качестве нескольких каналов во входных изображениях.
  • out_channels используется как несколько каналов, созданных свертками.
  • kernel_size используется как размер сверточного ядра.
  • stride используется для управления шагом на основе взаимной корреляции.
  • padding: контролирует количество неявного заполнения нулями.
  • output_padding: контролирует дополнительный размер, добавляемый к одной стороне выходной фигуры.
  • expansion: контролирует расстояние между точками ядра.
  • groups: управляет соединениями между входами и выходами.

Параметры

Прежде чем двигаться дальше, мы должны иметь некоторые знания о параметрах. Параметры – это измеримые факторы, принимаемые в качестве одного из наборов, описывающих систему или задающих условия ее функционирования.

В следующем коде мы импортируем все необходимые библиотеки, такие как import torch, import torch.nn как nn:

  • c = nn.Conv1d(20, 37, 5, шаг=2): здесь мы описываем переменную с помощью функции nn.Conv1d() с квадратными ядрами и равным шагом.
  • inp = torch.randn(24, 20, 54): здесь мы описываем входную переменную с помощью функции torch.randn().
  • out = c(inp) используется для описания выходной переменной.
  • print(out) используется для печати вывода с помощью функции print().
# 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)

Выход:

В приведенном ниже выводе вы можете видеть, что значения параметров PyTorch Conv1d выводятся на экран.

Параметры PyTorch Conv1d

Смещение

Смещение PyTorch Conv1d определяется как необязательный тензор смещения формы, а значение смещения по умолчанию — None.

В следующем коде сначала мы импортируем torch:

  • input = torch.ones(2,2,7): Здесь мы описываем входную переменную с помощью функции torch.ones().
  • m = torch.nn.Conv1d(in_channels = 1, out_channels = 1, kernel_size = 3): здесь мы используем функцию torch.nn.Conv1d().
  • print(«Parameters = «,list(m.parameters())) используется для печати списка параметров.
  • print(«bias = «,m.bias) используется для печати смещения с помощью функции print().
# 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)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значение смещения PyTorch Conv1d печатается на экране.

Смещение PyTorch Conv1d

Входные и выходные каналы

Входные каналы PyTorch Conv1d используются в качестве количества каналов во входном изображении. Выходные каналы PyTorch Conv1d используются как количество каналов, созданных сверткой.

В следующем коде сначала мы импортируем все необходимые библиотеки, такие как import torch, import Variable from torch.autograd и import torch.nn.functional:

  • class model(nn.Module): Здесь мы создаем класс модели, используя методы init() и front().
  • def numflat_featurs(self, y): Здесь мы определяем numflat_features.
  • model = model(): Здесь мы инициализируем модель.
  • print(model) используется для печати модели с помощью функции print().
# 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)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что входные и выходные каналы PyTorch Conv1d печатаются на экране.

Входные и выходные каналы PyTorch Conv1d

Добавить комментарий