包torch包含了多维张量得数据结构以及其上得多种数学操作,另外,它也提供了多种工具。其中一些可以有效得对张量和任意类型进行序列化。它有CUDA得对应实现,可以在 NVIDIA GPU 上进行张量运算(计算能力>=2.0)。
张量Tensors
torch.is_tensor
torch.is_tensor(obj)
如果obj是一个pytorch张量,则返回True.
- 参数: obj(Object)-判断对象
torch.is_storage
torch.is_storage(obj)
如果obj是一个pytorch storage对象,则返回true,
- 参数:input (Object) – 判断对象
torch.set_default_tensor_type
torch.set_default_tensor_type(t)
torch.numel
torch.numel(input)->int
返回input张量中得元素个数。
- 参数: input(tensor)-输入张量
torch.set_printoptions
torch.set_printoptions(precision=None, threshold=None,
edgeitems=None, linewidth=None, profile=None)
设置打印选项
参数:
- precision: 浮点数输出的精度位数 (默认为 8 )
- threshold – 阈值,触发汇总显示而不是完全显示(repr)的数组元素的总数 (默认为 1000)
- edgeitems – 汇总显示中,每维(轴)两端显示的项数(默认值为 3)
- linewidth – 用于插入行间隔的每行字符数(默认为 80)。
- profile – pretty 打印的完全默认值。 可以覆盖上述所有选项 (默认为 short, full)
创建操作 Creation Ops
torch.eye
torch.eye(n, m=None, out=None)
- 返回一个2维张量,对焦位置为1,其他位置为0.
参数:- n (int ) – 行数
- m (int, optional) – 列数.如果为 None,则默认为 n
- out (Tensor, optinal) - Output tensor
- 返回值: 对角线位置全 1,其它位置全 0 的 2 维张量
返回值类型: Tensor
from_numpy
torch.from_numpy(ndarray) → Tensor
Numpy桥,将 numpy.ndarray 转换为 pytorch 的 Tensor。返回的张量 tensor 和 numpy
的 ndarray 共享同一内存空间。修改一个会导致另外一个也被修改。返回的张量不能改变大
小。
torch.linspace
torch.linspace(start, end, steps=100, out=None) → Tensor
返回一个1维张量,包含在区间start和end上均匀间隔得step点,输出1维张量长度为steps
参数:
- start (float) – 序列的起始点
- end (float) – 序列的最终值
- steps (int) – 在 start 和 end 间生成的样本数
- out (Tensor, optional) – 结果张量
torch.logspace
torch.logspace(start, end, steps=100, out=None) → Tensor
返回一个1维张量,包含在区间
1
0
s
t
a
r
t
10^{start}
10start和
1
0
e
n
d
10^end
10end上以对数刻度均匀间隔steps个点,输出1维张量得长度为steps
参数:
- start (float) – 序列的起始点
- end (float) – 序列的最终值
- steps (int) – 在 start 和 end 间生成的样本数
- out (Tensor, optional) – 结果张量
torch.ones
torch.ones(*sizes, out=None) → Tensor
返回一个全为1得张量,其形状由可变参数sizes定义。
参数
- sizes:整数序列,定义了输出的形状
- out (Tensor, optional) – 结果张量
torch.rand
torch.rand(*sizes, out=None) → Tensor
返回一个张量,包含了从区间[0,1)的均匀分布中抽取一组随机数,形状由可变参数sizes定义。
参数
- sizes (int…) – 整数序列,定义了输出形状
- out (Tensor, optinal) - 结果张量
torch.randn
torch.randn(*sizes, out=None) → Tensor
返回一个张量,包含了从**标准正态分布(均值为 0,方差为 1,即高斯白噪声)**中抽取一组随
机数,形
状由可变参数 sizes 定义。
参数
- sizes (int…) – 整数序列,定义了输出形状
- out (Tensor, optinal) - 结果张量
torch.randperm
torch.randperm(n, out=None) → LongTensor
给定参数n,返回一个从0到n-1的随机整数排列。
参数
- n (int) – 上边界(不包含)
torch.arange
torch.arange(start, end, step=1, out=None) → Tensor
返回一个1维张量,长度为 floor((end−start)/step)。包含从 start 到 end,以 step 为步长
的一组
序列值(默认步长为1)
参数
- start (float) – 序列的起始点
- end (float) – 序列的终止点
- step (float) – 相邻点的间隔大小
- out (Tensor, optional) – 结果张量
torch.range
torch.range(start, end, step=1, out=None) → Tensor
返回一个 1 维张量,有 floor((end−start)/step)+1 个元素。包含在半开区间[start, end)
从 start
开始,以 step 为步长的一组值。 step 是两个值之间的间隔,即 xi+1=xi+step
警告:建议使用函数 torch.arange()
参数:
- start (float) – 序列的起始点
- end (float) – 序列的最终值
- step (int) – 相邻点的间隔大小
- out (Tensor, optional) – 结果张量
torch.zeros
torch.zeros(*sizes, out=None) → Tensor
返回一个全为标量0的张量,形状由可变参数size定义。
参数:
- sizes (int…) – 整数序列,定义了输出形状
- out (Tensor, optional) – 结果张量