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

c++ libtorch tensor 矩阵分块

代码示例

torch::Tensor a = torch::rand({ 2, 2, 4, 4 }, torch::kComplexDouble); // 2*2个4*4矩阵
torch::Tensor b11 = torch::rand({ 2, 2, 2, 2 }, torch::kComplexDouble);
torch::Tensor b12 = torch::rand({ 2, 2, 2, 2 }, torch::kComplexDouble);
torch::Tensor b21 = torch::rand({ 2, 2, 2, 2 }, torch::kComplexDouble);
torch::Tensor b22 = torch::rand({ 2, 2, 2, 2 }, torch::kComplexDouble);
std::cout << "a:" << a.sizes() << "\n" << a << std::endl;
std::cout << "b11:" << b11.sizes() << "\n" << b11 << std::endl;
std::cout << "b12:" << b12.sizes() << "\n" << b12 << std::endl;
std::cout << "b21:" << b21.sizes() << "\n" << b21 << std::endl;
std::cout << "b22:" << b22.sizes() << "\n" << b22 << std::endl;

a.narrow(2, 0, 2).narrow(3, 0, 2).copy_(b11); //top left a = a11 = b11
a.narrow(2, 0, 2).narrow(3, 2, 2).copy_(b12); //top right a = a12 = b12
a.narrow(2, 2, 2).narrow(3, 0, 2).copy_(b21); //bottom left a = a21 = b21
a.narrow(2, 2, 2).narrow(3, 2, 2).copy_(b22); //bottom right a = a22 = b22
std::cout << "a:" << a.sizes() << "\n" << a << std::endl;

narrow函数原型为

tensor.narrow(dim, start, length); 
  • dim:我们想要缩小(narrow)的维度。
  • start:在指定的维度上开始的位置。
  • length:在指定的维度上要选择的元素数量。

http://www.kler.cn/news/361363.html

相关文章:

  • eCAP超声波测距-ePWM电机调速
  • 技术面没过,竟然是因为我没用过Pytest框架?
  • GJS-WCP
  • 天线有源数据和无源数据有什么区别
  • RocketMQ快速开始
  • Qt信号和槽记录
  • 域4:通信与网络安全 第12章 安全通讯和网络攻击
  • 【数据结构与算法】第3课—数据结构之单链表
  • OBOO鸥柏丨《满天星(MTSTAR)》信息发布系统售后服务点位收费标准
  • Unity性能优化1【基础篇】
  • js的入口函数,及入口函数的作用
  • Spring中的参数统一配置
  • Microsoft Visual Studio Install Projects2022发布安装包
  • Java实现html填充导出pdf
  • Python 从网页中提取文本内容,进行中文分词和词频统计,并生成词云图进行可视化
  • 计算机网络教学设计稿
  • 自定义中文排序在Java中的实现与注意事项
  • redis的bitmap实现用户签到天数统计
  • 吃透高并发模型与RPC框架,拿下大厂offer!!!
  • VuePress的基本常识
  • HTML基本语法
  • 【电子元件】光通量和色温 (欧司朗LED灯珠 KW3 CGLNM1.TG命名规则)
  • 本币接口服务
  • 对比学习论文随笔 1:正负样本对(Contrastive Learning 基础论文篇)
  • Maven--架构项目管理工具
  • 基于知识图谱的美食推荐系统