当前位置: 首页 > article >正文

Tensor

张量的转换

张量转换为numpy数组

data_tensor.numpy();

data_tensor.numpy().copy;

numpy数组转换为张量

使用from_numpy将ndarray转换为Tensor,模式是共享内存。

通过使用copy实现内存拷贝。

data_numpy = np.array([2,3,4]);   借助于torch实现numpy转张量tensor

data_tensor = torch.from_numpy(data_numpy);

这里的tensor和numpy是共享内存。

data_tensor2=torch.tensor(data_numpy);    

这种方式默认是不共享内存的。

data = torch.tensor([30,])

print(data.item())

针对只有一个元素的,使用data.item()获取元素

张量的计算

data =torch.randint(0,10,[2,3]);

new_data = data.add(10);

data.sub(10)

data.mul(10)

data.div(10)

data.neg()  //取负数

data3 = torch.mul(data1,data2)   //点乘

data3 = data1*data2

matmul 矩阵乘法运算

张量的其他计算

data = torch.randint(0,10,[2,3], dtype = torch.float64)

均值

data.mean()

data.mean(dim=0)  //按照行计算均值

data.mean(dim=1) // 按照列计算均值

平方根

data.sqrt()  

求和

data.sum()

data.sum(dim=0)

data.sum(dim=1)

指数计算

torch.pow(data,2)

data.exp()

对数计算  以e为底

data.log()

data.lo2()

data.log10()

张量的索引

data[0]

data[:,0]  //第一列的元素

data([0,1], [1,2])  //返回第0行第一列,第1行第二列的元素。

data([[0,[1]], [1,2]]) // 返回的第0、1行的1、2列四个元素。

data[:3, :2]) 前三行的前两列数据

data([2:, :2])  第二行到最后的前两列数据

data[data[:,2]>5]  data数据中第三列大于5的行数据。 

data[:, data[1]>5]  data数据中第二行大于5的列数据

多维索引

torch.randint(0,10,[3,4,5])  三通道的四行五列

data[0,:,:]  //0轴上的第一个元素

data[:,0,:]  //所以纬度中第一行的元素

data[:,:,0]   // 所有纬度中第一列的元素

reshape()函数

在保证张量数据不便的情况下,只改变纬度

squeeze和unsqueeze函数  删除的添加形状为1的纬度

mydata2=mydata1.unsqueeze(dim=0);  //在0纬上拓展纬度

mydata2=mydata1.unsqueeze(dim=1);  //在1纬上拓展纬度

mydata5=mydata1.sequeeze();  //压缩纬度  

torch.transpose(data, 1,2) // 交互1纬和2纬的数据

print(data.shape)

torch.permute(data, [1,2,0])//一次交换多个纬度

data.view(3,2)    //1.判断是否是整块内存,data.is_contiguous()

torch.cat()  实现将两个张量进行拼接

torch.cat([data1,data2 ],dim-=0)


http://www.kler.cn/a/447586.html

相关文章:

  • OpenHarmony-6.IPC/RPC组件
  • 搭建MPI/CUDA开发环境
  • 使用Python开发高级游戏:创建一个3D射击游戏
  • 浅谈目前我开发的前端项目用到的设计模式
  • 【Vulkan入门】16-IndexBuffer
  • Hexo Next主题集成百度统计
  • sh cmake-linux.sh -- --skip-license --prefix = $MY_INSTALL_DIR
  • Javascript元编程
  • 2024年CCF 非专业级软件能力认证CSP-J/S 第二轮( 提高组) 染色(color)
  • HDR视频技术之八:色域映射
  • Kafka学习篇
  • 如何使用Python编写有效的网页抓取脚本以获取和处理数据?
  • blender生成城市白膜数据
  • 云技术基础
  • cisp-pte培训需要多久
  • JAVA开发Erp时日志报错:SQL 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘***‘ 中的标识列插入显式值
  • 【5G】5G 无线协议 Radio Protocols(一)
  • 【大语言模型】ACL2024论文-30 探索语言模型在文本分类中的伪相关性:概念层面的分析
  • clickhouse-题库
  • VSCode中的Black Formatter没有生效的解决办法
  • 云计算赋能:TSP 问题求解与创新定价机制的全景剖析
  • MFC/C++学习系列之简单记录10——定时器
  • 基于SpringBoot+Vue的音乐网站-无偿分享 (附源码+LW+调试)
  • LSTM实现天气模型训练与预测
  • 编译原理复习---运行存储分配
  • 化工行业SAP管理系统:构建未来可持续生产模式的基石