class torch.nn.Linear(in_features, out_features, bias=True)
对输入数据做线性变换:y=Ax+b
参数:
- in_features - 每个输入样本的大小
- out_features - 每个输出样本的大小
- bias - 若设置为False,这层不会学习偏置。默认值:True
形状:
输入: (N,in_features)
输出: (N,out_features)
变量:
- weight -形状为(out_features x in_features)的模块中可学习的权值
- bias -形状为(out_features)的模块中可学习的偏置
例子:
m = nn.Linear(20, 30)
input = autograd.Variable(torch.randn(128, 20))
output = m(input)
print(output.size())
class torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)
一维卷积层,输入的尺度是(N, C_in,L),输出尺度( N,C_out,L_out)的计算方式:
说明
bigotimes
: 表示相关系数计算
stride
: 控制相关系数的计算步长
dilation
: 用于控制内核点之间的距离
groups
: 控制输入和输出之间的连接,
group=1
:输出是所有的输入的卷积;
group=2
:此时相当于有并排的两个卷积层,每个卷积层计算输入通道的一半,并且产生的输出是输出通道的一半,随后将这两个输出连接起来。
Parameters
in_channels(int
) – 输入信号的通道
out_channels(int
) – 卷积产生的通道
kerner_size(int
or tuple
) - 卷积核的尺寸
stride(int
or tuple
, optional
) - 卷积步长
padding (int
or tuple
, optional
)- 输入的每一条边补充0的层数
dilation(int
or tuple
, optional
) – 卷积核元素之间的间距
groups(int
, optional
) – 从输入通道到输出通道的阻塞连接数
bias(bool
,optional
) - 如果bias=True
,添加偏置
shape
输入: (N,C_in,L_in)
输出: (N,C_out,L_out)
输入输出的计算方式:
变量:
weight(tensor
) - 卷积的权重,大小是(out_channels
, in_channels
, kernel_size
)
bias(tensor
) - 卷积的偏置系数,大小是(out_channel
)
example
m = nn.Conv1d(16, 33, 3, stride = 2)
input = autograd.Variable(torch.randn(20, 16, 50))
output = m(input)
class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)
二维卷积层, 输入的尺度是(N, C_in,H,W),输出尺度(N,C_out,H_out,W_out)的计算方式:
说明
bigotimes
: 表示二维的相关系数计算
stride
: 控制相关系数的计算步长
dilation
: 用于控制内核点之间的距离,详细描述在这里
groups
: 控制输入和输出之间的连接:
group=1
,输出是所有的输入的卷积;
group=2
,此时相当于有并排的两个卷积层,每个卷积层计算输入通道的一半,并且产生的输出是输出通道的一半,随后将这两个输出连接起来。
参数kernel_size
,stride,padding
,dilation
也可以是一个int的数据,此时卷积height
和width
值相同;也可以是一个tuple
数组,tuple
的第一维度表示height
的数值,tuple
的第二维度表示width
的数值
Parameters:
in_channels(int
) – 输入信号的通道
out_channels(int
) – 卷积产生的通道
kerner_size(int
or tuple
) - 卷积核的尺寸
stride(int
or tuple
, optional
) - 卷积步长
padding(int
or tuple
, optional
) - 输入的每一条边补充0的层数
dilation(int
or tuple
, optional
) – 卷积核元素之间的间距
groups(int
, optional
) – 从输入通道到输出通道的阻塞连接数
bias(bool
, optional
) - 如果bias
=True
,添加偏置
shape:
input: (N,C_in,H_in,W_in)
output: (N,C_out,H_out,W_out)
变量:
weight(tensor
) - 卷积的权重,大小是(out_channels
, in_channels
,kernel_size
)
bias(tensor
) - 卷积的偏置系数,大小是(out_channel
)
变量
# with square kernels and equal stride
m = nn.Conv2d(16, 33, 3, stride = 2)
# non-square kernels and unequal sride and with padding
m = nn.Conv2d(16, 33, (3, 5), stride = (2, 1), padding = (4, 2))
# non-square kernels and unequal stride and with padding and dilation
m = nn.Conv2d(16, 33, (3, 5), stride = (2, 1), padding = (4, 2), dilation = (3, 1)
input = autograd.Variable(torch.randn(20, 16, 50, 100))
output = m(input)