torch.cat((x,y),dim=1)
对x和y的指定维度进行拼接。
torch.split(x,dims,dim=1)
对指定维度进行分割。
torch.expend_as
将某一维度进行拓展,代码示例:
import torch
#1
x = torch.randn(2, 1, 1)#为1可以扩展为3和3
y = torch.randn(2, 3, 3)
x = x.expand_as(y)
print('x :', x.size())
>>> x : torch.Size([2, 3, 3])
#2
x = torch.randn(2, 2, 2)#为2不可以扩展为3和4
y = torch.randn(2, 3, 4)
x = x.expand_as(y)
print('x :', x.size())
>>> RuntimeError: The expanded size of the tensor (4) must match the existing size (2) at non-singleton dimension 2. Target sizes: [2, 3, 4].
torch.clamp()
torch.clamp(input, min, max, out=None) → Tensor
将输入input张量每个元素的夹紧到区间 [min,max],并返回结果到一个新张量。
操作定义如下:
| min, if x_i < min
y_i = | x_i, if min <= x_i <= max
| max, if x_i > max
torch.nn.Parameter()
作用是在网络中自定义一个可以训练的参数。
一般格式如:
self.gamma = nn.Parameter(torch.zeros(1))
默认requires_grad_ = True
特别地:
torch.empty() 创建任意数据类型的张量
torch.tensor() 只创建torch.FloatTensor类型的张量
所以torch.Tensor() 是torch.empty() 的特例
empty()返回一个包含未初始化数据的张量。使用参数可以指定张量的形状、输出张量、数据类型。
举例
empty = torch.empty(2, 3) # Returns a tensor filled with uninitialized data.
print(empty) # 每一次跑的结果都不一样
# tensor([[2.6999e-06, 1.7377e-04, 1.0431e-08],
# [4.0046e-11, 1.4013e-45, 2.6407e-06]])
===========================================================================
tensor = torch.tensor([2, 8]) # Constructs a tensor with data
print(tensor) # tensor([2, 8])
文章持续更新中,敬请关注。