美食网站开发的难点,网络营销策划方案基本思路,凡客优品官网,百度安装文章目录 2.8 torch.logspace函数讲解2.9 torch.ones函数2.10 torch.rand函数2.11 torch.randn函数2.12 torch.zeros函数 2.8 torch.logspace函数讲解
torch.logspace 函数在 PyTorch 中用于生成一个在对数尺度上均匀分布的张量#xff08;tensor#xff09;。这意味着张量中… 文章目录 2.8 torch.logspace函数讲解2.9 torch.ones函数2.10 torch.rand函数2.11 torch.randn函数2.12 torch.zeros函数 2.8 torch.logspace函数讲解
torch.logspace 函数在 PyTorch 中用于生成一个在对数尺度上均匀分布的张量tensor。这意味着张量中的元素是按照对数间隔排列的而不是线性间隔。这对于创建在数值上跨越多个数量级的序列特别有用例如在机器学习模型的超参数搜索中我们可能想要测试不同数量级的学习率。
torch.logspace 函数的原型如下 torch.logspace(start, end, steps100, base10.0,
dtypeNone, layouttorch.strided, deviceNone, requires_gradFalse) → Tensor
参数解释
start序列的起始值以底数为底的对数。
end序列的结束值以底数为底的对数。
steps生成的样本数量默认是 100。
base对数的底数默认是 10.0。这意味着 start 和 end 是以 10 为底的对数值。
如果是以自然对数以 e 为底为间隔则设置 basemath.e。
dtype返回张量的数据类型如果未提供则推断数据类型。
layout返回张量的内存布局默认是 torch.strided。
device返回张量所在的设备例如 CPU 或 GPU。
requires_grad如果设置为 True则张量将需要梯度用于反向传播。使用 torch.logspace 的例子
import torch# 创建一个从 10^1 到 10^3即 10 到 1000之间包含 5 个元素的张量底数为 10
tensor torch.logspace(1.0, 3.0, 5, base10.0)print(tensor)输出可能类似于
tensor([ 10., 32., 100., 316., 1000.])在这个例子中start1.0 对应于底数为 10 的 10即 10^1end3.0 对应于底数为 10 的 1000即 10^3。steps5 表示我们希望生成 5 个元素。结果是一个包含 5 个元素的张量这些元素在 10 到 1000 之间按照对数尺度均匀分布。
注意当 steps 参数很大时最后一个元素可能会略微超过 end 值因为对数间隔不是严格的均匀分布。同样当 steps 参数很小时第一个元素可能会略微小于 start 值。
2.9 torch.ones函数
在PyTorch中torch.ones 函数用于创建一个所有元素都设置为1的张量Tensor。这个函数接受与 torch.eye 类似的参数允许你指定张量的形状即行数和列数。
下面是如何使用 torch.ones 创建一个全1张量的示例
import torch# 创建一个3x3的全1矩阵
ones_matrix torch.ones(3, 3)print(ones_matrix)输出将是
tensor([[1., 1., 1.],[1., 1., 1.],[1., 1., 1.]])在这个例子中torch.ones(3, 3) 创建了一个3x3的矩阵其中所有元素都是1。 如果你想要创建一个不是方阵的全1张量你可以分别指定行数和列数
# 创建一个2x3的全1矩阵
ones_matrix_non_square torch.ones(2, 3)print(ones_matrix_non_square)输出将是
tensor([[1., 1., 1.],[1., 1., 1.]])在这个例子中torch.ones(2, 3) 创建了一个2x3的矩阵其中所有元素都是1。 同样你也可以通过 dtype 参数指定张量的数据类型
# 创建一个3x3的全1矩阵数据类型为int64
ones_matrix_int torch.ones(3, 3, dtypetorch.int64)print(ones_matrix_int)这将输出一个3x3的矩阵其中所有元素都是1并且数据类型是torch.int64。 请注意由于 torch.int64 是整数类型所有元素将被设置为1而不是浮点数1.0。如果你想要创建浮点数的全1张量你应该使用 torch.float32 或 torch.float64默认为 torch.float32作为数据类型。
2.10 torch.rand函数
在PyTorch中torch.rand 函数用于创建一个给定形状的张量Tensor其中每个元素都是从均匀分布 U(0, 1) 中随机抽取的。这意味着所有元素的值都在0到1之间包括0但不包括1。
下面是如何使用 torch.rand 创建一个随机张量的示例
import torch# 创建一个3x3的随机张量
random_tensor torch.rand(3, 3)print(random_tensor)输出将是一个3x3的矩阵其中的每个元素都是随机生成的并且值在0到1之间
tensor([[0.1234, 0.5678, 0.9101],[0.2345, 0.6789, 0.1230],[0.3456, 0.7890, 0.4567]])请注意每次调用 torch.rand 时都会生成一个新的随机张量即使形状和大小相同。 如果你想要创建一个具有特定数据类型的随机张量可以使用 dtype 参数。例如要创建一个浮点数为 torch.float64 类型的随机张量可以这样做
random_tensor_double torch.rand(3, 3, dtypetorch.float64)
print(random_tensor_double)2.11 torch.randn函数
在PyTorch中torch.randn 函数用于创建一个给定形状的张量Tensor其中每个元素都是从标准正态分布均值为0标准差为1中随机抽取的。这意味着生成的张量中的值将遵循正态分布并且平均来说大部分值将接近0但会有一些正值和负值。
下面是如何使用 torch.randn 创建一个随机张量的示例
import torch# 创建一个3x3的随机张量元素来自标准正态分布
random_tensor torch.randn(3, 3)print(random_tensor)输出将是一个3x3的矩阵其中的每个元素都是随机生成的并且符合标准正态分布
tensor([[ 0.1234, -0.5678, 0.9101],[-0.2345, 0.6789, -0.1230],[ 0.3456, -0.7890, 0.4567]])torch.randn 在深度学习和统计建模中特别有用因为它可以帮助你生成符合正态分布的随机初始权重和偏差这些权重和偏差在训练神经网络时通常会得到更好的性能。
2.12 torch.zeros函数
在PyTorch中torch.zeros 函数用于创建一个所有元素都设置为0的张量Tensor。这个函数接受一个形状参数允许你指定张量的维度。
下面是如何使用 torch.zeros 创建一个全0张量的示例
import torch# 创建一个3x3的全0矩阵
zeros_matrix torch.zeros(3, 3)print(zeros_matrix)输出将是
tensor([[0., 0., 0.],[0., 0., 0.],[0., 0., 0.]])在这个例子中torch.zeros(3, 3) 创建了一个3x3的矩阵其中所有元素都是0。
你可以创建任意维度的全0张量只需要提供相应的维度参数即可
# 创建一个2维的全0张量形状为 (4, 5)
zeros_tensor torch.zeros(4, 5)print(zeros_tensor)输出将是
tensor([[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.]])如果你想要指定张量的数据类型可以使用 dtype 参数
# 创建一个3x3的全0矩阵数据类型为float64
zeros_matrix_float64 torch.zeros(3, 3, dtypetorch.float64)print(zeros_matrix_float64)输出将是
tensor([[0., 0., 0.],[0., 0., 0.],[0., 0., 0.]], dtypetorch.float64)