张量概念及基本运算

tensor
一阶张量:vector
二阶张量:matrix 例如用户对电影评价表,每行表示一个用户,每列表示一部电影。矩阵中的值表示评价值。
三阶张量:例如上例中再加一个时间维度。还如用户关注某个主题的名人,每个值为1表示该用户关注了某主题下某个名人。
。。。
传统的方法(例如ICA,PCA、SVD和NMF)对于维数比较高的数据,一般将数据展成二维的数据形式(矩阵)进行处理,这种处理方式使得数据的结构信息丢失(比如说图像的邻域信息丢失),使得求解往往病态。而采用张量对数据进行存储,能够保留数据的结构信息,因此近些年在图像处理以及计算机视觉等领域得到了一些广泛的应用。

基本运算:
1、内积:两个张量对应元素乘机之和。
2、外积:定义张量X∈RI1×I2×…×IN和张量Y∈RJ1×J2×…×JM的外积为:
Z=X∘Y∈RI1×I2×…×IN×J1×J2×…×JM
其中: zi1,i2,…,iN,j1,j2,…,jM=xi1,i2,…,iN∗yj1,j2,…,jM
特别的,两个向量外积得到的结果是一个秩为1的矩阵
三个向量外积得到的结果是一个秩为1的三阶张量

3、kronecter乘积:Kronecker乘积定义在两个矩阵A∈RI×J,B∈RK×L
在这里插入图片描述4、Hadamard乘积(Hadamard Product)
Hadamard 乘积定义在两个相同大小的矩阵A∈RI×J,B∈RI×J上的运算:
在这里插入图片描述
张量的分解与补全(用在推荐系统)
引自此篇https://blog.csdn.net/Mlooker/article/details/80492932

上图出处及推荐系统的具体应用解释见此篇

08486332这篇文章用到了

### 张量运算概念及其在TensorFlow和PyTorch中的实现 #### 什么是张量张量是一种多维数组结构,可以看作是向量和矩阵的推广形式。它能够表示任意维度的数据集合,在机器学习领域被广泛用于数据处理和模型训练[^1]。 #### TensorFlow中的张量操作 TensorFlow是一个强大的开源框架,支持高效的数值计算,尤其适用于构建深度学习模型。在TensorFlow中,张量通过`tf.constant()`函数创建,并可以通过多种内置方法执行算术运算、索引切片以及形状变换等操作。例如: ```python import tensorflow as tf # 创建两个二维张量 tensor_a = tf.constant([[1, 2], [3, 4]], dtype=tf.float32) tensor_b = tf.constant([[5, 6], [7, 8]], dtype=tf.float32) # 执行加法运算 result_addition = tensor_a + tensor_b # 转置张量 transposed_tensor = tf.transpose(tensor_a) print(result_addition.numpy()) print(transposed_tensor.numpy()) ``` 上述代码展示了如何利用TensorFlow进行基本张量加法和转置操作[^2]。 #### PyTorch中的张量操作 与TensorFlow相似,PyTorch也提供了丰富的API来完成各种张量运算。不同之处在于PyTorch采用动态图机制,这使得调试更加直观方便。下面是一些常见的张量操作实例: ```python import torch # 定义两个随机初始化的张量 tensor_x = torch.rand(3, 4) tensor_y = torch.rand(3, 4) # 计算点积 dot_product_result = torch.dot(tensor_x.view(-1), tensor_y.view(-1)) # 修改张量尺寸 reshaped_tensor = tensor_x.reshape(4, 3) print(dot_product_result.item()) print(reshaped_tensor.size()) ``` 这里演示了使用PyTorch计算两组一维化后的张量之间的点乘结果,同时还调整了一个原始三维张量到新的布局形态[^3]。 #### 总结比较两者特点 虽然二者都能很好地满足大多数场景下的需求,但在实际应用过程中可以根据具体项目特性做出选择。如果更倾向于静态图模式下优化性能,则推荐选用TensorFlow;而当希望获得即时反馈并快速迭代开发流程时,PyTorch可能是更好的选项[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值