做一家拍卖网站需要什么资质,可以观看国外短视频的app,北京 网站建设咨询顾问公司,网站色哦优化8888您的进步和反馈是我写作最大的动力#xff0c;小伙伴来个三连呗#xff01;共勉~
话不多说#xff0c;书接上文#xff0c;需要温习的小伙伴请移步 - 从PyTorch官方的一篇教程说开去#xff08;6.1 - 张量 tensor 基本操作#xff09;-CSDN博客
借图镇楼 - 1 - 矩阵乘…您的进步和反馈是我写作最大的动力小伙伴来个三连呗共勉~
话不多说书接上文需要温习的小伙伴请移步 - 从PyTorch官方的一篇教程说开去6.1 - 张量 tensor 基本操作-CSDN博客
借图镇楼 - 1 - 矩阵乘法点积或外积整个行乘以整个列:
shape (4,4)
ones_tensor torch.ones(shape)
y1 ones_tensor ones_tensor
print(f{y1}\n)shape (4,4)
ones_tensor torch.ones(shape)
y2 torch.matmul(ones_tensor,ones_tensor.T)
print(f{y2}\n)z1 torch.rand_like(y1)
torch.matmul(ones_tensor, ones_tensor.T, outz1)
print(f{z1}\n)
使用 符号等同于调用matmul函数进行矩阵乘法。由于 ones_tensor 是一个 4x4 的全1矩阵其与自身的乘法结果将是一个元素为4的矩阵。ones_tensor.T 表示转置。用out 参数可以就地执行矩阵乘法结果存储在 z1 中。这样可以避免额外的内存分配。
2 - 元素级别的点乘dot product:
y3 ones_tensor * ones_tensor
print(f{y3}\n)y4 torch.mul(ones_tensor,ones_tensor.T)
print(f{y4}\n)z2 torch.rand_like(y3)
torch.mul(ones_tensor,ones_tensor.T,outz2)
元素级别的点乘也就是逐元素相乘。对于全1矩阵结果是每个元素都是1。同上例提供3种算符。
3 - torch没有官方定义叉乘Cross Product:
# 定义两个三维向量
vector_a torch.tensor([1.0, 2.0, 3.0])
vector_b torch.tensor([4.0, 5.0, 6.0])# 计算叉乘
cross_product torch.linalg.cross(vector_a, vector_b)print(fVector A: {vector_a})
print(fVector B: {vector_b})
print(fCross Product: {cross_product})
尽管官方没有但是为了区别这几个容易混淆的概念我们还是配个例子。叉乘Cross Product通常是针对两个三维向量而言的它返回一个向量该向量垂直于原来的两个向量并遵循右手定则。
4 - 单元素张量:
agg ones_tensor.sum()
agg_item agg.item()
print(agg_item,type(agg_item)) ones_tensor 是一个 4x4 的单位矩阵其元素总和将是 4x416。item() 方法用于将这个张量转换成一个 Python 标量即一个单一数值。在进行一些扁平化的操作时候会用到。
5 - 就地计算函数为节约存储这些都很常用:
原地操作函数in-place operations 以_结尾
add_(): 原地加法。
sub_(): 原地减法。
mul_(): 原地乘法。
div_(): 原地除法。copy_(): 原地复制。
t_(): 原地转置。
fill_(): 原地填充。
zero_(): 原地清零。clamp_(): 原地限制值。
clamp_min_(): 原地最小值限制。
clamp_max_(): 原地最大值限制。sum_(): 原地求和。
mean_(): 原地求平均值。
std_(): 原地求标准差。
var_(): 原地求方差。
norm_(): 原地求范数。
renorm_(): 原地重规范化。addmm_(): 原地矩阵乘法加法。
addr_(): 原地地址加法。
addbmm_(): 原地二维矩阵乘法加法。
baddbmm_(): 原地批量二维矩阵乘法加法。
mm_(): 原地矩阵乘法。
bmm_(): 原地批量矩阵乘法。ger_(): 原地外积。
linalg_vector_norm_(): 原地向量范数。
linalg_matrix_norm_(): 原地矩阵范数。
linalg_solve_(): 原地线性求解。
linalg_inv_(): 原地矩阵求逆。
linalg_pinv_(): 原地伪逆。
linalg_eig_(): 原地特征值分解。
linalg_svd_(): 原地奇异值分解。
linalg_householder_product_(): 原地Householder变换。
linalg_qr_(): 原地QR分解。
linalg_triangular_solve_(): 原地三角求解。
linalg_cholesky_(): 原地Cholesky分解。
linalg_symeig_(): 原地对称特征值分解。
linalg_eigvals_(): 原地特征值计算。
linalg_eigvalsh_(): 原地Hermitian特征值计算。
linalg_slogdet_(): 原地对数行列式。
linalg_det_(): 原地行列式。
linalg_cond_(): 原地条件数。
linalg_matrix_rank_(): 原地矩阵秩。
linalg_solve_triangular_(): 原地三角求解。
linalg_lstsq_(): 原地最小二乘求解。
6 - 打印结果和类型:
np_array np.array(data)
x_np torch.from_numpy(np_array)print(f{x_np}\n)
x_np.add_(1)
print(np_array,\n)n np.ones(5)
t torch.from_numpy(n)
np.add(n,1,outn)
print(f{t} \n{n})这里就地展示一下上个小标题的原地计算函数add_() 是就地操作它将 1 加到张量 x_np 的每个元素上。注意由于 x_np 和 np_array 共享内存np_array 也会被修改。我们还一同展示了如何在数组和张量之间进行互相转化。