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. Если это правда, это добавляет обучаемую предвзятость к выходным данным. Если оно ложно, это не добавляет к выходным данным никакой обучаемой предвзятости.
- Пример
- Функционал
- Заполнение Conv1d
- Группа
- Расширение
- Conv1d в CNN
- Вес конверсии
- Транспонирование
- Параметры
- Смещение
- Входные и выходные каналы
Пример
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 применяет 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 определяется как параметр, который используется для управления соединением между входами и выходами. Значение групп по умолчанию — 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 определяется как параметр, который используется для управления расстоянием между элементами ядра, а значение расширения по умолчанию равно 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 печатаются на экране.
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 используется для выполнения свертки к данным 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 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 определяется как необязательный тензор смещения формы, а значение смещения по умолчанию — 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 используются как количество каналов, созданных сверткой.
В следующем коде сначала мы импортируем все необходимые библиотеки, такие как 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 печатаются на экране.