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

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.mrgr.cn/news/56123.html

相关文章:

  • ThinkPad T480拆机屏幕改装:便携式显示器DIY指南
  • 什么是“钻石继承问题”
  • Qt中的Base64编码
  • nodejs 实现docker 精简可视化控制
  • [论文笔记]RA-DIT: RETRIEVAL-AUGMENTED DUAL INSTRUCTION TUNING
  • Golang 并发编程:通道(Channel)的详细用法
  • 壹肆柒·2025郑州台球展会,3月12-14日盛大举办
  • Flink PostgreSQL CDC源码解读:深入理解数据流同步
  • 跨站调用(CORS)一例
  • 基础数据结构——队列(链表实现,数组实现)
  • 期权懂|看涨期权合约的买方具有什么义务?
  • L0G1000 Linux 基础知识
  • 【计网】理解TCP全连接队列与tcpdump抓包
  • 免费赠书啦,免费赠送多本《数据资产管理核心技术与应用》一书
  • webAPI中的offset、client、scroll
  • 【vue之道】
  • python中如何获取对象信息
  • 详解Java之Spring MVC篇一
  • SSM网上书店管理系统—计算机毕业设计源码41539
  • 如何将 Docker 镜像的 tar 文件迁移到另一台服务器并运行容器
  • 焊接原因引起的RJ45网口连接器LED灯不亮原因分析及处理措施
  • Redis Search系列 - 第四讲 支持中文
  • pip安装basicsr和tb-nightly报错
  • deepin V23 部署Ollama
  • BurpSuite渗透工具的简单使用
  • 如何利用动态IP对市场进行产品调研分析?