pytorch常用函数详解
1. torch.normal(mean, std, size)
是 PyTorch 库中的一个函数,用于生成服从正态分布的随机数张量。
参数:
mean:正态分布的均值(标量或与 std 形状相同的张量)
std:正态分布的标准差(标量或与 mean 形状相同的张量)
size:生成张量的形状
返回值:
生成一个形状为 size 的张量,其中的元素服从均值为 mean、标准差为 std 的正态分布。
X = torch.normal(0, 1, (3, 4))
X
输出
tensor([[-0.4956, -0.0314, 0.2582, -0.7087],[-0.1559, -1.0313, 1.0450, 0.0574],[-1.4880, -0.4843, 1.4594, 0.1650]])
PyTorch中的两个张量的乘法可以分为两种:
2. torch.matmul(input, other, out = None)
是 PyTorch 库中的一个函数,用于计算两个张量的矩阵乘法。
参数:
input:要进行矩阵乘法的第一个张量。
other:要进行矩阵乘法的第二个张量。
返回值:
返回一个张量,表示两个输入张量的矩阵乘法结果。
要注意的是,两个输入张量必须满足矩阵乘法的规则,即第一个张量的列数必须等于第二个张量的行数。
import torchA = torch.tensor([[1, 2], [3, 4]])
B = torch.tensor([[5, 6], [7, 8]])result = torch.matmul(A, B)
print(result)
输出
tensor([[19, 22],[43, 50]])
3. torch.mul(input, other, out = None)
是 PyTorch 库中的一个函数,用于对两个张量逐元素进行相乘(element-wise multiplication)。或者*运算符)实现
参数:
input:要进行相乘的第一个张量。
other:要进行相乘的第二个张量。
返回值:
返回一个张量,表示两个输入张量逐元素相乘的结果。
要求两个输入张量的形状必须相同,或者其中一个张量是标量(只有一个元素)。
import torchA = torch.tensor([[1, 2], [3, 4]])
B = torch.tensor([[5, 6], [7, 8]])result = torch.mul(A, B)
print(result)
输出
tensor([[ 5, 12],[21, 32]])
4.单层网络架构
这一单层被称为全连接层(fully-connected layer), 因为它的每一个输入都通过矩阵-向量乘法得到它的每个输出。
全连接层在Linear类中定义。 值得注意的是,我们将两个参数传递到nn.Linear中。 第一个指定输入特征形状,即2,第二个指定输出特征形状,输出特征形状为单个标量,因此为1。
# nn是神经网络的缩写
from torch import nn
net = nn.Sequential(nn.Linear(2,1))
正如我们在构造nn.Linear时指定输入和输出尺寸一样, 现在我们能直接访问参数以设定它们的初始值。 我们通过net[0]选择网络中的第一个图层, 然后使用weight.data和bias.data方法访问参数。 我们还可以使用替换方法normal_和fill_来重写参数值。
weight.data 和 bias.data 是 PyTorch 中用于访问张量参数数据的属性。它们提供了对模型的权重和偏置参数数据的直接访问,而不包括梯度信息或自动求导关系。
net[0].weight.data.normal_(0, 0.01)
net[0].bias.data.fill_(0)
5. net.parameters()
是一个函数,用于返回神经网络模型 net 中的可学习参数(即需要更新的参数)。
具体来说,net.parameters() 返回一个迭代器,通过遍历这个迭代器,可以获取模型中的每个可学习参数。每个参数都表示为一个 torch.Tensor 对象,其中包含参数的数据和梯度信息。
from torch import nnnet = nn.Sequential(nn.Linear(2, 1)
)# 遍历模型中的可学习参数
for param in net.parameters():print(param)
6. transforms.ToTensor()
是 torchvision 中的一个变换操作,用于将 PIL 图像或 NumPy 数组转换为 PyTorch 的 Tensor 对象。
具体来说,transforms.ToTensor() 将输入的图像或数组按照通道顺序转换为浮点类型的 Tensor,并将像素值归一化到 [0, 1] 范围内。
7. X.reshape((-1, W.shape[0]))
将输入数据 X 进行形状变换,将其转化为二维张量,其中第一维的大小自动推断为与权重矩阵 W 的行数相同。这样做是为了确保可以进行矩阵乘法运算。
8. isinstance()
是一个 Python 内置函数,用于检查一个对象是否属于指定的类型或类的实例。
9.
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!