tensor的不同维度种类

本文介绍了在PyTorch中处理不同形状的张量,如0维标量、1维向量和2维矩阵,展示了如何获取张量的维度、元素值以及进行矩阵乘法和内积操作。
部署运行你感兴趣的模型镜像

几种形状的tensor

0维标量(scalar),1维向量(vector),二维矩阵(matrix),3维以上n维张量

scalar

import torch
torch.__version__
from torch import tensor
x=tensor(42)
x

tensor(42)
x.dim()
0
x.item()
42

vector

y=tensor([1.5,-0.5,3.0])
y
tensor([ 1.5000, -0.5000,  3.0000])
y.dim()
1
y.size()
torch.Size([3])

matrix

m=tensor([[1.,2.],[2.,4.]])
m
tensor([[1., 2.],
        [2., 4.]])
m.matmul(m)#功能是将矩阵m与自身进行矩阵乘法运算。该运算将矩阵m的每一行与m的每一列进行乘积,并将结果相加以得到最终的结果。在这个例子中,矩阵m是一个2x2的矩阵,结果将会是一个2x2的矩阵。
tensor([[ 5., 10.],
        [10., 20.]])
#同上
tensor([1.,0.]).matmul(m)
tensor([1., 2.])
m*m#内积
tensor([[ 1.,  4.],
        [ 4., 16.]])

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

### 不同维度矩阵融合方法概述 在编程和数据处理领域,不同维度的矩阵可以通过多种技术进行融合。这些技术可以分为线性代数操作、张量运算以及特定算法设计三大部分。 #### 1. **矩阵投影法** 当两个矩阵具有不同维度时,一种常见的解决办法是通过降维或升维来使它们匹配。例如,在神经网络架构中提到的输出投影矩阵 $ W_O \in \mathbb{R}^{d \times d_h n_h} $ 表明了一种可能的方式——通过对高维空间中的向量应用线性变换将其映射到低维空间[^1]。具体来说: - 如果矩阵 A 的大小为 $ m \times n $ 而 B 的大小为 $ p \times q $ 并且两者无法直接相乘,则可通过引入一个中间矩阵 C 来调整其形状。 ```python import numpy as np A = np.random.rand(m, n) B = np.random.rand(p, q) if n != p: # 创建适配器矩阵C C = np.random.rand(n, p) result = np.dot(A, C).dot(B) # 结合多个矩阵完成计算 ``` 此过程利用了基本的矩阵乘法规则并扩展至更复杂的场景下。 #### 2. **硬件加速支持下的梯度更新机制** 对于大规模的数据集或者模型参数而言,单纯依靠软件层面的操作效率较低;因此现代计算机体系结构提供了专门针对此类任务优化过的解决方案。比如某些专用集成电路 (ASICs),图形处理器(GPUs)[^2], 它们能够显著提升反向传播过程中涉及大量浮点运算的速度。这不仅限于简单的数值计算还包括内存管理等方面都有所改进: - 多核并行化执行单元允许同时处理多组输入/输出对; - 高带宽缓存减少了频繁访问外部存储所带来的延迟开销。 这种类型的设备特别适合那些需要反复迭代直到收敛为止的应用程序环境之中。 #### 3. **应对类别不平衡问题的技术手段** 除了上述两种通用型策略之外,在实际项目开发当中还会遇到诸如分类预测准确性下降等问题。特别是在医学影像分析等领域内尤为突出因为正常样本往往远超异常情况的数量从而造成训练偏差现象严重。为此提出了几种有效的缓解措施之一即修改传统意义上的交叉熵函数定义形式使其更加关注稀少种类的表现效果[^3]: ```python class WeightedCrossEntropyLoss(nn.Module): def __init__(self, weights): super(WeightedCrossEntropyLoss, self).__init__() self.weights = torch.tensor(weights,dtype=torch.float32) def forward(self,predictions,targets): return nn.functional.cross_entropy(predictions, targets,reduction='mean',weight=self.weights.cuda()) # Example usage assuming binary classification problem where positive instances are rare. weights=[0.1 ,99.9 ] # Adjust according actual distribution statistics accordingly . criterion=WeightedCrossEntropyLoss(weights) ``` 以上代码片段展示了如何自定义损失函数以适应特殊需求的情况 。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值