torch.nn中常见的神经网络层

首先说明torch.nn.functional和torch.nn的区别:

nn.functional.conv1d()表示的1d卷积函数,而nn.Conv1d()这种表示的是1d卷积层

conv1d

torch.nn中常见的神经网络层_第1张图片 conv1d函数

关于dilation参数请参阅:https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md

有点类似核中相邻两个元素的距离,默认为1,就是那种正常的相邻,为2表示之间空一格

weight是滤波器的shape,就是核的尺寸

import torch
import torch.nn as nn
import torch.nn.functional as F

filters = torch.randn(33, 16, 3)
print(filters.size())

inputs = torch.randn(20, 16, 50)
print(inputs.size())

res = F.conv1d(inputs, filters)
print(res.size())



输出:
torch.Size([33, 16, 3]) 
torch.Size([20, 16, 50]) 
torch.Size([20, 33, 48])

同时再看一下conv1d卷积层

torch.nn中常见的神经网络层_第2张图片

torch.nn中常见的神经网络层_第3张图片

torch.nn中常见的神经网络层_第4张图片

import torch
import torch.nn as nn

m = nn.Conv1d(16, 33, 3, stride=2) # 实例化
input = torch.randn(20, 16, 50)
output = m(input)

 

你可能感兴趣的:(torch.nn中常见的神经网络层)