PyTorch Conv3d определяется как трехмерная свертка, которая применяется к входному сигналу, собранному из некоторых входных плоскостей.
Синтаксис:
torch.nn.Conv3d(in_channels, out_channels, Kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', devices=None, dtype=None)
Параметры:
- in_channels используется как количество каналов во входном изображении.
- out_channels используется как количество каналов, создаваемых сверткой.
- Kernel_size используется для определения размера сверточного ядра.
- шаг используется для управления шагом для взаимной корреляции и одного числа или кортежа из одного элемента.
- stride используется для управления количеством заполнения, применяемого к входным данным. Это может быть либо строка, либо кортеж с неявным заполнением. Значение заполнения по умолчанию — 0.
- dilation используется для управления расстоянием между элементами ядра, а значение расширения по умолчанию равно 1.
- groups используются для управления соединением между входами и выходами. Значение групп по умолчанию — 1.
- bias: значение смещения по умолчанию — True. Если это правда, это добавляет обучаемую предвзятость к выходным данным. Если оно ложно, это не добавляет к выходным данным никакой обучаемой предвзятости.
- Пример
- Функционал
- Заполнение
- Группа
- Расширение
- Смещение
- PyTorch Conv3d в CNN
- Транспонирование
- Параметры
- Вес
- Input_channels и output_channels
Пример
PyTorch Conv3d — это простая арифметическая операция, внутри которой мы перемещаем матрицу или ядро весов над трехмерными данными и выполняем поэлементное умножение данных.
Код:
В следующем коде мы импортируем все необходимые библиотеки, такие как import torch, import torch.nn как nn.
- c = nn.Conv3d(18, 35, 5, stride=2): здесь мы объявляем переменную, используя квадратные ядра и равный шаг.
- input = torch.randn(22, 18, 12, 52, 102) используется для описания входной переменной с помощью функции torch.randn().
- print(output) используется для печати вывода с помощью функции print().
# Importing libraries import torch import torch.nn as nn # Declaring the variable by using square kernels and equal stride c = nn.Conv3d(18, 35, 5, stride=2) # Describing the input and output variables input = torch.randn(22, 18, 12, 52, 102) output = c(input) # Print output print(output)
Выход:
После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значения PyTorch Conv3d печатаются на экране.

Функционал
Функционал PyTorch Conv3d применяет трехмерную свертку к входному изображению, собранному из некоторых входных плоскостей.
Синтаксис:
torch.nn.functional.conv3d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)
Параметры:
- input: ввод определяется как входной тензор формы(мини-пакет, in_channels).
- weight: Вес определяется как фильтр формы(out_channels).
- bias: смещение определяется как необязательный тензор смещения формы(out_channels). Значение смещения по умолчанию — Нет.
- stride: Шаг свертывающегося ядра. Значение шага по умолчанию — 1.
- padding используется для управления количеством заполнения, применяемого к входным данным. Это может быть либо строка, либо кортеж с неявным заполнением. Значение заполнения по умолчанию — 0.
- dilation используется для управления расстоянием между элементами ядра, а значение расширения по умолчанию равно 1.
- groups используются для управления соединением между входами и выходами. Значение групп по умолчанию — 1.
Пример:
В следующем коде сначала мы импортируем все необходимые библиотеки, такие как import torch, import torch.nn.functional как функцию.
- filter = torch.randn(35, 18, 5, 5, 5): Здесь мы описываем переменную с помощью функции torch.randn().
- f=function.conv3d(input, filter) используется для описания функции function.conv3d().
- print(f) используется для печати вывода с помощью функции print().
# Importing Libraries import torch import torch.nn.functional as function # Describing the variable by using torch.randn() function filter = torch.randn(35, 18, 5, 5, 5) input = torch.randn(22, 18, 52, 12, 22) # Using conv3d() function f=function.conv3d(input, filter) # print output print(f)
После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что функциональные значения Conv3d PyTorch печатаются на экране.

Заполнение
Заполнение PyTorch Cpnv3d используется для управления количеством заполнения, применяемого к входным данным. Это может быть строка или кортеж с указанием количества неявного заполнения. Значение заполнения по умолчанию — 0.
Код:
В следующем коде мы импортируем все необходимые библиотеки, такие как import torch, import torch.nn как nn.
- c = nn.Conv3d(18, 35, 5, stride=2): здесь мы объявляем переменную, используя квадратные ядра и равный шаг.
- p = nn.Conv3d(18, 35,(5, 7, 4), шаг =(4, 3, 3), дополнение =(6, 4, 0)): Здесь мы объявляем переменную, используя неквадратную ядра и неравный шаг с набивкой.
- input = torch.randn(22, 18, 12, 52, 102): здесь мы описываем входные и выходные переменные с помощью функции torch.randn().
- print(output) используется для печати вывода с помощью функции print().
# Importing libraries import torch import torch.nn as nn # Declaring the variable by using square kernels and equal stride c = nn.Conv3d(18, 35, 5, stride=2) # Declaring the variable by using non-square kernels and unequal stride with padding p = nn.Conv3d(18, 35,(5, 7, 4), stride=(4, 3, 3), padding=(6, 4, 0)) # Describing the input and output variables input = torch.randn(22, 18, 12, 52, 102) output = p(input) # Print output print(output)
Выход:
В приведенном ниже выводе мы видим, что значения заполнения PyTorch Conv3d печатаются на экране.

Группа
Группа PyTorch Conv3d используется для управления соединением между входами и выходами. Значение групп по умолчанию — 1.
Код:
В следующем коде мы импортируем все необходимые библиотеки, такие как import torch и import torch.nn как nn.
- g = nn.Conv3d(20, 37, 7, stride=2) используется для объявления переменной с использованием квадратных ядер и равного шага.
- input = torch.randn(24, 20, 14, 54, 104) используется для описания входной переменной с помощью функции torch.randn().
- print(output) используется для печати вывода с помощью функции print().
# Importing libraries import torch import torch.nn as nn # Declaring the variable by using square kernels and equal stride g = nn.Conv3d(20, 37, 7, stride=2) # Describing the input and output variables input = torch.randn(24, 20, 14, 54, 104) output = g(input) # Print output print(output)
Выход:
После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значения группы PyTorch Conv3d печатаются на экране.

Расширение
Расширение PyTorch Conv3d используется для управления расстоянием между элементами ядра, а значение расширения по умолчанию равно 1.
Код:
В следующем коде мы импортируем все необходимые библиотеки, такие как import torch и import torch.nn как nn.
- c = nn.Conv3d(18, 35, 5, stride=2): здесь мы объявляем переменную, используя квадратные ядра и равный шаг.
- p = nn.Conv3d(18, 35,(5, 7, 4), шаг =(4, 3, 3), дополнение =(6, 4, 0)): Здесь мы объявляем переменную, используя неквадратную ядра и неравный шаг с набивкой.
- q = nn.Conv3d(18, 35,(5, 7, 4), шаг =(4, 3, 3), заполнение =(6, 4, 0), расширение =(5,3,1)): Здесь мы объявляем переменную, используя неквадратные ядра и неравный шаг с заполнением и расширением.
- input = torch.randn(22, 18, 12, 52, 102): здесь мы описываем переменную с помощью функции torch.randn().
- print(output) используется для печати вывода с помощью функции print().
# Importing libraries import torch import torch.nn as nn # Declaring the variable by using square kernels and equal stride c = nn.Conv3d(18, 35, 5, stride=2) # Declaring the variable by using non-square kernels and unequal stride with padding p = nn.Conv3d(18, 35,(5, 7, 4), stride=(4, 3, 3), padding=(6, 4, 0)) # Declaring the variable by using non-square kernels and unequal stride with padding and dilation q = nn.Conv3d(18, 35,(5, 7, 4), stride=(4, 3, 3), padding=(6, 4, 0), dilation=(5,3,1)) # Describing the input and output variables input = torch.randn(22, 18, 12, 52, 102) output = q(input) # Print output print(output)
Выход:
После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значения расширения PyTorch Conv3d печатаются на экране.

Смещение
Прежде чем двигаться дальше, мы должны иметь некоторые знания о предвзятости. Предвзятость учитывает разницу между предсказанием модели и реальным результатом.
Смещение PyTorch Conv3d добавляет обучаемое смещение к выходным данным, когда его значение истинно, если оно ложно, оно не добавляет обучаемое смещение к выходным данным. Значение смещения по умолчанию — True.
Код:
В следующем коде мы импортируем библиотеку факела, например import torch.
- inp = torch.ones(4,4,9,9): Здесь мы описываем входную переменную с помощью функции torch.ones().
- c = torch.nn.Conv3d(in_channels = 1, out_channels = 1, kernel_size = 3): здесь мы используем функцию Conv3d().
- print(«Parameters = «,list(c.parameters())) используется для печати списка параметров с помощью функции print().
- print(«bias = «,c.bias) используется для печати смещения с помощью функции print().
# Import library
import torch
# Describe the input variable
inp = torch.ones(4,4,9,9)
print("Input = ",inp)
# Using conv3d module
c = torch.nn.Conv3d(in_channels = 1, out_channels = 1, kernel_size = 3)
# Print the list of the parametrs
print("Net = ",c)
print("Parameters = ",list(c.parameters()))
# Print the bias
print("bias = ",c.bias)
Выход:
После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значения смещения PyTorch Conv3d печатаются на экране.

PyTorch Conv3d в CNN
Прежде чем двигаться дальше, мы должны иметь некоторые знания о сверточных нейронных сетях(CNN).
Сверточная нейронная сеть — это тип искусственной нейронной сети, которая используется для распознавания изображений.
Здесь мы используем PyTorch Conv3d для работы со сверточной нейронной сетью. Это простая математическая операция, в которой мы перемещаем матрицу или ядро весов над трехмерными данными и выполняем поэлементное умножение данных.
Код:
В следующем коде сначала мы импортируем все необходимые библиотеки, такие как импорт факела, импорт переменной из torch.autograd, импорт torchvision.datasets, импорт torch.nn.init.
- traindata = dtsets.MNIST(root=’MNIST_data/’, train=True, Transform=transforms.ToTensor(), download=True) используется в качестве набора данных MNIST для поезда.
- print(‘Training dataset:\t’,traindata) требуется распечатать набор данных поезда с помощью функции print().
- class CNN(torch.nn.Module): используется для создания класса модели с помощью методов init() и front().
- CNNmodel = CNN() используется для создания экземпляра модели.
# Importuing libraries
import torch
from torch.autograd import Variable
import torchvision.datasets as dtsets
import torchvision.transforms as transforms
import torch.nn.init
# hyperparameters
batch_size = 24
keepprobab = 1
# MNIST dataset
traindata = dtsets.MNIST(root='MNIST_data/',
train=True,
transform=transforms.ToTensor(),
download=True)
testdata = dtsets.MNIST(root='MNIST_data/',
train=False,
transform=transforms.ToTensor(),
download=True)
# dataset loader
dataloader = torch.utils.data.DataLoader(dataset=traindata,
batch_size=batch_size,
shuffle=True)
# Display informations about the dataset
print('Training dataset:\t',traindata)
print('\nTesting dataset:\t',testdata)
# Define the CNN Model class
class CNN(torch.nn.Module):
def __init__(self):
super(CNN, self).__init__()
self.layer1 = torch.nn.Sequential(
torch.nn.Conv3d(1, 24, kernel_size=3, stride=1, padding=1),
torch.nn.ReLU(),
torch.nn.MaxPool2d(kernel_size=2, stride=2),
torch.nn.Dropout(p=1 - keepprobab))
self.layer2 = torch.nn.Sequential(
torch.nn.Conv3d(24, 56, kernel_size=3, stride=1, padding=1),
torch.nn.ReLU(),
torch.nn.MaxPool2d(kernel_size=2, stride=2),
torch.nn.Dropout(p=1 - keepprobab))
self.layer3 = torch.nn.Sequential(
torch.nn.Conv3d(56, 120, kernel_size=3, stride=1, padding=1),
torch.nn.ReLU(),
torch.nn.MaxPool2d(kernel_size=2, stride=2, padding=1),
torch.nn.Dropout(p=1 - keepprobab))
self.fc1 = torch.nn.Linear(4 * 4 * 120, 627, bias=True)
torch.nn.init.xavier_uniform(self.fc1.weight)
self.layer4 = torch.nn.Sequential(
self.fc1,
torch.nn.ReLU(),
torch.nn.Dropout(p=1 - keepprobab))
# L5 Final FC 627 inputs -> 12 outputs
self.fc2 = torch.nn.Linear(627, 12, bias=True)
# initialize parameters
torch.nn.init.xavier_uniform_(self.fc2.weight)
def forward(self, y):
output = self.layer1(y)
output = self.layer2(output)
output = self.layer3(output)
# Flatten them for FC
output = output.view(output.size(0), -1)
output = self.fc1(output)
output = self.fc2(output)
return output
#instantiate CNN model
CNNmodel = CNN()
CNNmodel
Выход:
В приведенном ниже выводе мы видим, что PyTorch Conv3 в модели CNN печатается на экране.

Транспонирование
Транспонирование PyTorch Conv3d применяет оператор трехмерной транспонированной свертки к входным изображениям, собранным из некоторых входных плоскостей.
Синтаксис:
torch.nn.ConvTranspose3d(in_channels, out_channels, kernel_size, stride=1, padding=0, out_padding=0, groups=1, bias=True, dilation=1, padding_mode='zeros', device=None, dtype=None)
Параметры:
Ниже приведены параметры транспонирования PyTorch Conv3d.
- in_channels — количество каналов во входном изображении.
- out_channels — количество каналов, созданных сверткой.
- kernel_size используется как размер сверточного ядра.
- шагу предъявлен иск, чтобы контролировать шаг на основе взаимной корреляции.
- дополнение используется для управления количеством неявного заполнения нулями.
- outpu_padding используется для управления дополнительным размером, добавляемым к одной стороне выходной фигуры.
- расширение используется для управления расстоянием между точками ядра.
- группы используются для управления соединениями между входами и выходами.
Пример:
В следующем коде мы импортируем все необходимые библиотеки, такие как import torch, import torch.nn как nn.
- c = nn.ConvTranspose3d(16, 33, 3, stride=2) используется для описания переменной с использованием квадратных ядер и равного шага.
- c = nn.ConvTranspose3d(16, 33,(3, 5, 2), шаг =(2, 1, 1), дополнение =(0, 4, 2)) используется для описания переменной с использованием неквадратных ядер. и неравный шаг с подкладкой.
- inp = torch.randn(20, 16, 10, 50, 100): здесь мы описываем входную переменную с помощью функции torch.randn().
- print(outp) используется для печати вывода с помощью функции print().
# Importing Libraries import torch import torch.nn as nn # Describing the variable by using square kernels and equal stride c = nn.ConvTranspose3d(16, 33, 3, stride=2) # Describing the variable by using non-square kernels and unequal stride and with padding c = nn.ConvTranspose3d(16, 33,(3, 5, 2), stride=(2, 1, 1), padding=(0, 4, 2)) # Declaring the input variable inp = torch.randn(20, 16, 10, 50, 100) outp = c(inp) # Print output print(outp)
Выход:
После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значения транспонирования PyTorch Conv3d печатаются на экране.

Параметры
Прежде чем двигаться дальше, мы должны иметь некоторые знания о параметрах. Параметры — это измеримые факторы, установленные как один из наборов, описывающих систему или задающих условия ее функционирования.
Код:
В следующем коде мы импортируем все необходимые библиотеки, такие как import torch и import torch.nn как nn.
- k = nn.Conv3d(22, 39, 9, шаг=2) используется для описания переменной с использованием квадратных ядер и равного шага.
- inp = torch.randn(26, 22, 16, 56, 106): здесь мы описываем входную переменную с помощью функции torch.randn().
- print(out) используется для печати вывода с помощью функции print().
# Importing libraries import torch import torch.nn as nn # Declaring the variable by using square kernels and equal stride k = nn.Conv3d(22, 39, 9, stride=2) # Describing the input and output variables inp = torch.randn(26, 22, 16, 56, 106) out = k(inp) # Print output print(out)
Выход:
В приведенном ниже выводе мы видим, что значения параметров PyTorch Conv3d печатаются на экране.

Вес
Вес PyTorch Conv3d используется для выполнения свертки в 3D-данные и некоторых дополнительных опций, таких как заполнение и т. д.
Код:
В следующем коде мы импортируем библиотеку факела, например import torch.
- inpt = torch.ones(1,1,3,3,3): Здесь мы описываем входную переменную с помощью функции torch.ones().
- print(«Input = «,inpt) используется для печати входных данных с помощью функции print().
- w = torch.nn.Conv3d(in_channels = 1, out_channels = 1, kernel_size = 3): здесь мы используем функцию Conv3d().
- print(«Parameters = «,list(w.parameters())) используется для печати списка параметров.
- print(«Weight = «,w.weight) используется для печати весов.
- print(«Output = «,out) используется для печати вывода с помощью функции print().
# Import library
import torch
# Describe the input variable
inpt = torch.ones(1,1,3,3,3)
# Print input
print("Input = ",inpt)
w = torch.nn.Conv3d(in_channels = 1, out_channels = 1, kernel_size = 3)
# Print the parameter list
print("net = ",w)
print("Parameters = ",list(w.parameters()))
# Print the weight
print("Weight = ",w.weight)
# Print the bias
print("bias = ",w.bias)
out = w(inpt)
print("Output = ",out)
Выход:
После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что вес PyTorch Conv3d печатается на экране.

Input_channels и output_channels
Input_channels PyTorch Conv3d используются в качестве количества каналов во входном изображении. Otput_channels PyTorch Conv3d используются в качестве количества каналов, создаваемых сверткой.
Код:
В следующем коде сначала мы импортируем все необходимые библиотеки, такие как импорт факела, импорт переменной из torch.autograd, импорт torch.nn как nn, импорт torch.nn.functional.
- class mod(nn.Module): Здесь мы создаем класс модели с помощью функций init() и front().
- size = y.size()[1:] используется в качестве всех измерений, кроме размеров партии.
- model = mod() используется как экземпляр модели.
- 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 mod(nn.Module):
def __init__(self):
super(mod, self).__init__()
# 1 input image channel, 10 output channels, 9x9 square convolution
self.conv1 = nn.Conv3d(1, 10, 9)
self.conv2 = nn.Conv3d(10, 20, 9)
# an affine operation: y = Wx + b
self.fc1 = nn.Linear(20 * 9 * 9, 142)
self.fc2 = nn.Linear(142, 88)
self.fc3 = nn.Linear(88, 14)
def forward(self, y):
# Max pooling over a(2, 2) window
y = fun.max_pool2d(fun.relu(self.conv1(y)),(2, 2))
# If the size is a square you can only specify a single number
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 = mod()
# Print the model
print(model)
Выход:
После запуска приведенного выше кода мы получаем следующий вывод, в котором мы видим, что значения input_channels и output_channels PyTorch Conv3d печатаются на экране.
