x = torch.rand(5, 3)
y = torch.rand(5, 3)
#第一种
print(x + y)
#第二种
print(torch.add(x, y))
#第三种
result = torch.empty(5, 3)
torch.add(x, y, out=result)
print(result)
#第四种
y.add_(x)
print(y)
一个元素张量可以用 item 得到元素值。
x = torch.randn(1)
print(x)
print(x.item())
#结果是
tensor([-0.4464]) # 打印张量
-0.44643348455429077 # 打印元素值
view()的作用相当于numpy中的reshape,重新定义矩阵的形状。以下两个例子的结果相同。
import torch
v1 = torch.range(1, 16) # v1为1*16大小的张量,包含16个元素
v2 = v1.view(4, 4) # v2为4*4大小的张量,同样包含16个元素
# 注意view前后的元素个数要相同,不然会报错
import torch
v1 = torch.range(1, 16)
v2 = v1.view(-1, 4) # view中一个参数定为-1,代表动态调整这个维度上的元素个数,以保证元素的总数不变。
对张量进行翻转,改变了张量的形状。
t = torch.tensor([[2, 1, 3], [4, 5, 9]])
t2 = t.transpose(0, 1)
t2
# 结果:
tensor([[2,4],
[1,5],
[3,9])
torch.contiguous()方法语义上是“连续的”,经常与torch.permute()、torch.transpose()、torch.view()方法一起使用。要理解具体的原因,可参考博客:https://blog.csdn.net/qq_37828380/article/details/107855070
判断是否contiguous用torch.Tensor.is_contiguous()
函数。
x = torch.ones(10, 10)
x.is_contiguous() # True
x.transpose(0, 1).is_contiguous() # False
x.transpose(0, 1).contiguous().is_contiguous() # True
contiguous方法改变了多维数组在内存中的存储顺序,以便配合view方法使用。
torch.contiguous()方法首先拷贝了一份张量在内存中的地址,然后将地址按照形状改变后的张量的语义进行排列。
将excel表格中的第一行看作列名,并默认输出之后的 5行 ,可在head后面的括号里面直接设置想要输出的行数。
df = pd.read_csv(os.path.join(DATA_ROOT,'labels.csv'))
df.head()
shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度。
详解:https://blog.csdn.net/qq_28618765/article/details/78081959
shuffle() 方法将序列的所有元素随机排序。
注意:shuffle()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
import random
list = [20, 16, 10, 5]
random.shuffle(list)
print "随机排序列表 : ", list
# 结果:
随机排序列表 : [16, 5, 10, 20]
读取 data 所有行的 j 列的数。
max(-1)中的-1表示按照最后一个维度求最大值。
torch.max()[0], 只返回最大值的每个数
troch.max()[1], 只返回最大值的每个索引
对输入的数据进行线性变换 y = wx + b
原型: torch.nn.Linear(in_features, out_features, bias=True)
参数:
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
在指定的间隔内返回均匀间隔的数字。
返回num均匀分布的样本,在[start, stop]。这个区间的端点可以任意的被排除在外。
>>> np.linspace(2.0, 3.0, num=5)
array([ 2. , 2.25, 2.5 , 2.75, 3. ])
>>> np.linspace(2.0, 3.0, num=5, endpoint=False)
array([ 2. , 2.2, 2.4, 2.6, 2.8])
>>> np.linspace(2.0, 3.0, num=5, retstep=True)
(array([ 2. , 2.25, 2.5 , 2.75, 3. ]), 0.25)
numpy.size(a, axis=None)
size()函数主要是用来统计矩阵元素个数,或矩阵某一维上的元素个数的函数。
>>> a = np.array([[1,2,3],[4,5,6]])
>>> np.size(a)
6
>>> np.size(a,1) # 返回该二维矩阵的列数
3
>>> np.size(a,0) # 返回该二维矩阵的行数
2
实现张量和标量之间逐元素求指数操作,或者在可广播的张量之间逐元素求指数操作。
torch.pow(input, exponent, out=None) → Tensor
>>> a = torch.randn(4)
>>> a
tensor([ 0.4331, 1.2475, 0.6834, -0.2791])
>>> torch.pow(a, 2)
tensor([ 0.1875, 1.5561, 0.4670, 0.0779])
>>> exp = torch.arange(1., 5.)
>>> a = torch.arange(1., 5.)
>>> a
tensor([ 1., 2., 3., 4.])
>>> exp
tensor([ 1., 2., 3., 4.])
>>> torch.pow(a, exp)
tensor([ 1., 4., 27., 256.])
torch.pow(self, exponent, out=None) → Tensor
>>> exp = torch.arange(1., 5.)
>>> base = 2
>>> torch.pow(base, exp)
tensor([ 2., 4., 8., 16.])