1.torch.
tensor
(data, dtype=None, device=None, requires_grad=False) → Tensor
torch.tensor()
always copies data
. If you have a Tensor data
and want to avoid a copy, use torch.Tensor.requires_grad_()
or torch.Tensor.detach()
. If you have a NumPy ndarray
and want to avoid a copy, use torch.from_numpy()
.
torch.tensor函数总会拷贝数据,除非使用其他函数可以避免拷贝。
2.torch.
sparse_coo_tensor
(indices, values, size=None, dtype=None, device=None, requires_grad=False) → Tensor
使用coordinate format matrix来进行稀疏矩阵的数据的存储。具体稀疏矩阵的表示方法可参考https://en.wikipedia.org/wiki/Sparse_matrix,其中,
一个稀疏矩阵:
能够被表示为如下一个三行的矩阵:
A = [ 5 8 3 6 ]
IA = [ 0 0 2 3 4 ]
JA = [ 0 1 2 1 ]
A用来表示矩阵中的元素(从左到右,从上到下),IA[i]表示从第一行到第i行中的所有元素,IA[0]始终为0,而JA则表示相应的
元素在哪一列。但在这里indices用一个二维矩阵表示每个稀疏项的位置,第一维是行,第二维是列。
3.torch.
as_tensor
(data, dtype=None, device=None) → Tensor
转化一个ndarray成为tensor,如果同为cpu存储,则无需拷贝,否则需要拷贝,例如从cpu类型变为GPU类型,也就是赋值device相关属性。
4.torch.
zeros_like
(input, dtype=None, layout=None, device=None, requires_grad=False) → Tensor
其实在调用torch.zeros(input.size(),dtype=None, layout=None, device=None, requires_grad=False)
torch.ones_like()类似用法。
5.torch.
arange
(start=0, end, step=1, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor 类似numpy.arange 函数,支持int和float,而python range函数不支持float类型。
6.torch.
range
(start=0, end, step=1, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor 同上arange函数,与python自带的不一样,其支持float类型。
7.torch.
logspace
(start, end, steps=100, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
>>> torch.logspace(start=-10, end=10, steps=5)
tensor([ 1.0000e