首页 > 其他分享 >tensor对张量和矩阵的操作

tensor对张量和矩阵的操作

时间:2024-07-26 14:31:11浏览次数:14  
标签:dim tensor 矩阵 torch mask 张量 dtype print

点击查看代码
# -*- coding: utf-8 -*-
# @Author  : 钱力
# @Time    : 2024/7/26 10:36
import torch

a = torch.arange(5)
b = a[2:]  # 截取a的部分值
print('a', a)
print('b', b)
# 打印存储地址
# 可以发现他们共用存储区
# b的索引比a偏移了2位
print(a.untyped_storage().data_ptr())
print(b.untyped_storage().data_ptr())

print('=======================')
# 修改b,a也会被修改
b[1] = 0
print('a', a)
print('b', b)
print(a.untyped_storage().data_ptr())
print(b.untyped_storage().data_ptr())
# 张量的stride
a = torch.tensor([[1, 2, 3], [4, 5, 6]])
b = torch.tensor([[1, 2], [3, 4], [5, 6]])
print('a:', a)
print('stride of a:', a.stride())
print('b:', b)
print('stride of b:', b.stride())

# 数值固定的向量
x = torch.zeros(2, 3)
print(x)

x = torch.ones(2, 3)
print(x)

y = torch.empty(3, 4)  # 随机划一块内存,不给初始化
x = torch.zeros_like(y)  # 全零尺寸和一样
print(y)

# 均值为1,方差为0的保准正态分布
x = torch.randn(3, 4)  # 标准正态分布
print('x:', x)
# 均匀分布
x = torch.rand(3, 4)
print(x)

# 生成特殊数组
# tenser = torch.arange(0, 16).view(4, 4)  # 0到15,把数据按4x4格式排列
# print(tenser)
#
# mask = torch.eye(4, dtype=torch.bool)#对角线矩阵
# print(mask)
#
# tensor = torch.masked_fill(mask,100)
# print(tensor)

# 一维的mask
x = torch.tensor([1, 0, -1])
mask = x.ge(0.5)  # 对于数组(或类似数组的数据结构)x中的每一个元素,检查它是否大于等于0.5。生成布尔数组
print('mask:', mask)
y = torch.masked_select(x, mask)
print(y)

# 与人工智能相关的操作
x = torch.randn(3, 4)
print(x)
y = torch.sigmoid(x)
print('sigmoid', y)
y = torch.softmax(x, dim=-1)
print('softmax', y)
y = torch.relu(x)
print('relu', y)
y = torch.tanh(x)
print('tanh', y)

# 向量的计算
x = torch.tensor([1, 2, 3, 4, 5], dtype=torch.float16)
y = torch.tensor([6, 7, 8, 9, 10], dtype=torch.float16)
print(x * y)  # 对应元素相乘
# 求余弦相似度
print(torch.nn.CosineSimilarity(dim=-1)(x, y))  # 这是神经网络的一层,但是没有参数
print(torch.nn.functional.cosine_similarity(x, y, dim=-1))  # 纯函数

x = torch.tensor([1, 2, 3, 4, 5], dtype=torch.float32)
y = torch.tensor([6, 7, 8, 9, 10], dtype=torch.float32)

z = torch.dot(x, y)  # 内积
print('内积:', z)
z = torch.outer(x, y)  # 外积
print('外积:', z)

# 基本矩阵运算
x = torch.tensor([[1, 2], [3, 4]], dtype=torch.float32)
y = torch.tensor([[3, 4], [5, 6]], dtype=torch.float32)
# 对应元素相乘
print(x * y)
# 矩阵乘法
print(torch.matmul(x, y))

# 矩阵计算
x = torch.tensor([[2, 1, 3],
                  [6, 5, 4]])
y = torch.sum(x)  # 所有值相加
print('sum:', y)
y = torch.pow(x, 3)  # 全部3次方
print('pow:', y)
y = torch.argmax(x)  # 返回矩阵最大的元素
print('argmax,全量', y)
y = torch.argmax(x, dim=0)  # 返回特定维度最大元素的索引
print('argmax dim=0', y)
y = torch.argmax(x, dim=1)
print('argmax dim=1', y)

标签:dim,tensor,矩阵,torch,mask,张量,dtype,print
From: https://www.cnblogs.com/qian-li-xju/p/18325282

相关文章

  • ValueError:仅顺序模型或功能模型支持参数clone_function和input_tensors
    我正在使用量化感知训练我参考了网上的lstm代码,想放入QAT放入lstm,但是遇到了ValueError。ValueErrorTraceback(最近一次调用last)在<细胞系:6>()4返回层5---->6注释模型=tf.keras.models.clone_model(7型号,8clone_model(模型,input_tensors,clone......
  • 基于GD32的矩阵按键usb-hid设备,详细教程,完全模拟的电脑数字键盘的所有功能,包括长按、
    本文采用的是基于GD32F350的一个4×5的矩阵键盘键盘板。矩阵键盘的电路原理图大致如下,由四个列引脚和五个行引脚来检测判断按键的按下。本文四个列引脚分别是PA15PB8PB9PC13,五个行引脚分别是PB10PB11PB12PB13PB14。typedefstruct{uint32_tGPIO_Group;......
  • numpy和tensor
    通过list生成tensor生成及存储方式#张量生成从pyhton中的list生成x=torch.tensor([1,2,3])print(x)print(x.dtype)#半精度x=torch.tensor([1,2,3]).to(torch.float16)print(x.dtype)#全精度x=torch.tensor([1,2,3]).to(torch.float32)print(x.dtype)......
  • TF/Keras 为什么 MaxPooling3D 在这段代码中返回一个张量的元组而不是单个张量?
    tensorflow2.15后端inp=layers.Input(batch_shape=batch_shape)print('Input{}'.format(str(inp.shape)))输入(1,7,60,60,1)x=inpx=layers.Dropout(0.2)(x)x=layers.LayerNormalization()(x)x=layers.Conv2D(filters=16,......
  • 如何使用 NumPy 根据值在矩阵中的出现情况来组织值?
    我正在做一个练习,需要根据3x3矩阵中的出现情况将0到5之间的值组织到一个数组中。我正在使用NumPy来完成此任务。给定以下3x3矩阵:[[113][452][300]]我想输出一个数组,其中每个元素代表从0到5的每个值出现的次数。对于上述矩阵,所需的输出是:[2,2......
  • 使用 Tensorflow 运行 hello world 程序会出现此错误
    我使用PycharmIDE来运行Python程序。我已经成功安装了TensorFlow包,没有任何问题,但是当我尝试运行该程序(一个简单的helloworld程序)时,它给了我这个很长的错误!路径和环境似乎都很好,我尝试遵循不同的教程,但没有一个出现此错误,我看到一个它有类似的错......
  • 矩阵行列式计算模版
    #include<iostream>usingnamespacestd;constintMAXN=100;intdet(inta[MAXN][MAXN],intn){intres=0;if(n==1){returna[0][0];}else{for(intj=0;j<n;j++){intt[MAXN][MAXN];......
  • 【数论】1 矩阵快速幂(斐波那契)
    Tips:本篇blog适合刚开始学习数论部分的同学本题解仅代表个人思路,如有异议欢迎批评指正,谢谢一.概述该章节讲述的是矩阵运算及快速幂的概念,学过的同学可以跳过本章,直接看矩阵快速幂1.矩阵矩阵类似于向量,我们可以这么来表示一个矩阵如上图,表示了一个  的矩阵。矩阵也......
  • 抖音短视频seo矩阵系统源码开发搭建私有化部署流程分享-----PHP+SaaS独立部署
      抖音seo源码优化逻辑抖音SEO是通过一系列的技术手段和优化策略来提升视频内容在抖音平台内的曝光率和排名。其中主要包括以下几个方面:1.关键词优化。通过对视频的标题、描述等元素的关键词进行优化,提高相关性和匹配度,让用户更容易搜索到相关视频。2.标签优化。在上传视......
  • 矩阵系统代码的核心思维
       随着信息技术的飞速发展,矩阵系统软件作为一种强大的工具,已经在多个领域中展现出其独特的价值。矩阵系统软件的核心原理基于数学中的矩阵理论,通过构建复杂的矩阵运算模型,实现对数据的高效处理和分析。本文将对矩阵系统软件进行深入解析,包括其原理、应用、优势以及未来趋......