torch将多个tensor张量合并为一个张量,只提高迷你批次的纬度

2023-11-05

在自己写pytorch的数据集加载函数时,会遇到一个问题,如何将多张图片张量合并到一起,提升迷你批次batch的纬度,但是不影响图片的大小和RGB通道数
解决方法:
函数torch.cat(inputs,dim)
这里的inputs是你要合并的图像,dim=多少代表你打算让他们在哪个纬度上融合

import cv2
import torch
image_path = 'F:\\Pythontest\\cnn\\data\\train\\n01440764\\n01440764_13316.JPEG'
image_path1 = 'F:\\Pythontest\\cnn\\data\\train\\n01440764\\n01440764_13360.JPEG'
image_path2 = 'F:\\Pythontest\\cnn\\data\\train\\n01440764\\n01440764_13375.JPEG'
img = cv2.imread(image_path, cv2.IMREAD_COLOR)
img = cv2.resize(img, (6, 6))
img = img.transpose(2, 0, 1)
img = torch.from_numpy(img).float()
img = img.unsqueeze(0)
print(img.size())
print(img)

img1 = cv2.imread(image_path1, cv2.IMREAD_COLOR)
img1 = cv2.resize(img1, (6, 6))
img1 = img1.transpose(2, 0, 1)
img1 = torch.from_numpy(img1).float()
img1 = img1.unsqueeze(0)
print(img1.size())
print(img1)


result1 = torch.cat((img,img1), dim=0)
print(result1.size())
print(result1)

img2 = cv2.imread(image_path2, cv2.IMREAD_COLOR)
# 对图像的预处理可以放到这个位置
img2 = cv2.resize(img2, (6, 6))
img2 = img2.transpose(2, 0, 1)
img2 = torch.from_numpy(img2).float()
img2 = img2.unsqueeze(0)
print(img2.size())
print(img2)

result0 = torch.cat((result1, img2), dim=0)
print(result0.size())
print(result0)

下面这是结果,可以看到,只有batch的维数增加了,其他位置没有变

在这里插入代码片
torch.Size([1, 3, 6, 6])
tensor([[[[112., 122., 126., 162.,  76.,  80.],
          [ 87.,  31.,  36.,  17.,  84., 138.],
          [ 21.,  85., 186., 209., 228., 179.],
          [ 32., 158., 199.,   9.,  78., 169.],
          [ 27.,  36.,  25.,  43.,  38., 128.],
          [ 28.,  25.,  53.,  71., 105., 153.]],

         [[162., 168., 158., 150.,  67.,  77.],
          [145.,  22.,  21.,  14.,  75., 135.],
          [ 18., 117., 210., 231., 237., 172.],
          [ 23., 197., 226.,  32.,  92., 205.],
          [ 20.,  38.,  20.,  43.,  65., 169.],
          [ 54.,  13.,  52.,  90., 145., 178.]],

         [[151., 185., 157., 140.,  57.,  67.],
          [135.,  12.,  15.,   6.,  66., 130.],
          [ 10., 112., 216., 233., 241., 162.],
          [ 19., 219., 237.,  50.,  88., 208.],
          [ 11.,  32.,  11.,  38.,  55., 172.],
          [ 34.,   7.,  42.,  91., 164., 196.]]]])
torch.Size([1, 3, 6, 6])
tensor([[[[ 71.,  63., 127.,  75.,  96.,  62.],
          [ 57., 232., 155., 185., 164., 117.],
          [ 48.,  51.,  40.,  43.,  53.,  37.],
          [ 43.,  78., 165., 208., 204.,  37.],
          [ 33.,  76., 126., 114., 125., 100.],
          [ 54.,  58.,  23.,  15.,  10.,  19.]],

         [[ 80.,  64., 147.,  97., 151., 101.],
          [ 76., 238., 144., 169., 148., 173.],
          [ 49.,  43.,  39.,  50.,  99.,  41.],
          [ 60., 128., 204., 216., 200.,  67.],
          [ 47.,  88., 115., 100., 126.,  93.],
          [ 84., 111.,  43.,  12.,  21.,  58.]],

         [[ 53.,  58., 144., 102., 156., 102.],
          [ 57., 228., 136., 156., 140., 170.],
          [ 40.,  44.,  33.,  57., 112.,  59.],
          [ 80., 128., 181., 194., 177.,  76.],
          [ 79.,  76., 118., 102., 114.,  86.],
          [103., 119.,  48.,  18.,  19.,  56.]]]])
torch.Size([2, 3, 6, 6])
tensor([[[[112., 122., 126., 162.,  76.,  80.],
          [ 87.,  31.,  36.,  17.,  84., 138.],
          [ 21.,  85., 186., 209., 228., 179.],
          [ 32., 158., 199.,   9.,  78., 169.],
          [ 27.,  36.,  25.,  43.,  38., 128.],
          [ 28.,  25.,  53.,  71., 105., 153.]],

         [[162., 168., 158., 150.,  67.,  77.],
          [145.,  22.,  21.,  14.,  75., 135.],
          [ 18., 117., 210., 231., 237., 172.],
          [ 23., 197., 226.,  32.,  92., 205.],
          [ 20.,  38.,  20.,  43.,  65., 169.],
          [ 54.,  13.,  52.,  90., 145., 178.]],

         [[151., 185., 157., 140.,  57.,  67.],
          [135.,  12.,  15.,   6.,  66., 130.],
          [ 10., 112., 216., 233., 241., 162.],
          [ 19., 219., 237.,  50.,  88., 208.],
          [ 11.,  32.,  11.,  38.,  55., 172.],
          [ 34.,   7.,  42.,  91., 164., 196.]]],


        [[[ 71.,  63., 127.,  75.,  96.,  62.],
          [ 57., 232., 155., 185., 164., 117.],
          [ 48.,  51.,  40.,  43.,  53.,  37.],
          [ 43.,  78., 165., 208., 204.,  37.],
          [ 33.,  76., 126., 114., 125., 100.],
          [ 54.,  58.,  23.,  15.,  10.,  19.]],

         [[ 80.,  64., 147.,  97., 151., 101.],
          [ 76., 238., 144., 169., 148., 173.],
          [ 49.,  43.,  39.,  50.,  99.,  41.],
          [ 60., 128., 204., 216., 200.,  67.],
          [ 47.,  88., 115., 100., 126.,  93.],
          [ 84., 111.,  43.,  12.,  21.,  58.]],

         [[ 53.,  58., 144., 102., 156., 102.],
          [ 57., 228., 136., 156., 140., 170.],
          [ 40.,  44.,  33.,  57., 112.,  59.],
          [ 80., 128., 181., 194., 177.,  76.],
          [ 79.,  76., 118., 102., 114.,  86.],
          [103., 119.,  48.,  18.,  19.,  56.]]]])
torch.Size([1, 3, 6, 6])
tensor([[[[ 54.,  88.,  19., 106.,  79., 164.],
          [ 17.,  39.,  95.,  20., 129.,  70.],
          [ 29., 150.,  76., 121.,  91.,  78.],
          [ 58.,  50.,  21.,  33.,  89.,  99.],
          [ 50.,  17., 110.,  53.,  22.,  24.],
          [ 52.,  84.,  55.,  40.,  83.,  19.]],

         [[137., 130.,  34., 153., 133., 201.],
          [ 87.,  65., 110.,  62., 217., 168.],
          [ 69., 153., 111., 141., 123.,  95.],
          [ 95.,  91., 102., 106., 121., 174.],
          [ 85.,  68., 131., 100.,  73.,  95.],
          [ 94., 114.,  66.,  92., 118.,  94.]],

         [[ 92., 105.,  37., 120.,  87., 184.],
          [ 46.,  40., 149.,  31., 182., 134.],
          [ 44., 177., 116., 142., 133.,  89.],
          [ 87.,  90., 109., 114., 129., 144.],
          [ 85.,  81., 174., 105.,  42.,  54.],
          [ 74., 141.,  74.,  62.,  96.,  46.]]]])
torch.Size([3, 3, 6, 6])
tensor([[[[112., 122., 126., 162.,  76.,  80.],
          [ 87.,  31.,  36.,  17.,  84., 138.],
          [ 21.,  85., 186., 209., 228., 179.],
          [ 32., 158., 199.,   9.,  78., 169.],
          [ 27.,  36.,  25.,  43.,  38., 128.],
          [ 28.,  25.,  53.,  71., 105., 153.]],

         [[162., 168., 158., 150.,  67.,  77.],
          [145.,  22.,  21.,  14.,  75., 135.],
          [ 18., 117., 210., 231., 237., 172.],
          [ 23., 197., 226.,  32.,  92., 205.],
          [ 20.,  38.,  20.,  43.,  65., 169.],
          [ 54.,  13.,  52.,  90., 145., 178.]],

         [[151., 185., 157., 140.,  57.,  67.],
          [135.,  12.,  15.,   6.,  66., 130.],
          [ 10., 112., 216., 233., 241., 162.],
          [ 19., 219., 237.,  50.,  88., 208.],
          [ 11.,  32.,  11.,  38.,  55., 172.],
          [ 34.,   7.,  42.,  91., 164., 196.]]],


        [[[ 71.,  63., 127.,  75.,  96.,  62.],
          [ 57., 232., 155., 185., 164., 117.],
          [ 48.,  51.,  40.,  43.,  53.,  37.],
          [ 43.,  78., 165., 208., 204.,  37.],
          [ 33.,  76., 126., 114., 125., 100.],
          [ 54.,  58.,  23.,  15.,  10.,  19.]],

         [[ 80.,  64., 147.,  97., 151., 101.],
          [ 76., 238., 144., 169., 148., 173.],
          [ 49.,  43.,  39.,  50.,  99.,  41.],
          [ 60., 128., 204., 216., 200.,  67.],
          [ 47.,  88., 115., 100., 126.,  93.],
          [ 84., 111.,  43.,  12.,  21.,  58.]],

         [[ 53.,  58., 144., 102., 156., 102.],
          [ 57., 228., 136., 156., 140., 170.],
          [ 40.,  44.,  33.,  57., 112.,  59.],
          [ 80., 128., 181., 194., 177.,  76.],
          [ 79.,  76., 118., 102., 114.,  86.],
          [103., 119.,  48.,  18.,  19.,  56.]]],


        [[[ 54.,  88.,  19., 106.,  79., 164.],
          [ 17.,  39.,  95.,  20., 129.,  70.],
          [ 29., 150.,  76., 121.,  91.,  78.],
          [ 58.,  50.,  21.,  33.,  89.,  99.],
          [ 50.,  17., 110.,  53.,  22.,  24.],
          [ 52.,  84.,  55.,  40.,  83.,  19.]],

         [[137., 130.,  34., 153., 133., 201.],
          [ 87.,  65., 110.,  62., 217., 168.],
          [ 69., 153., 111., 141., 123.,  95.],
          [ 95.,  91., 102., 106., 121., 174.],
          [ 85.,  68., 131., 100.,  73.,  95.],
          [ 94., 114.,  66.,  92., 118.,  94.]],

         [[ 92., 105.,  37., 120.,  87., 184.],
          [ 46.,  40., 149.,  31., 182., 134.],
          [ 44., 177., 116., 142., 133.,  89.],
          [ 87.,  90., 109., 114., 129., 144.],
          [ 85.,  81., 174., 105.,  42.,  54.],
          [ 74., 141.,  74.,  62.,  96.,  46.]]]])

进程已结束,退出代码0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

torch将多个tensor张量合并为一个张量,只提高迷你批次的纬度 的相关文章

  • 使用请求验证 SSL 证书

    我正在尝试验证 SSL 但它不起作用 我在浏览器上访问了我想要访问的机密网站 在 Chrome 上 我单击了储物柜 gt 证书 gt 详细信息 gt 复制到文件 gt base64 gt cert cer 我的代码是 test reques
  • 将tensorflow 2.0 BatchDataset转换为numpy数组

    我有这个代码 train images test images tf keras datasets mnist load data train dataset tf data Dataset from tensor slices train
  • 没有任何元数据的 zip 文件

    我想找到一种简单的方法来压缩一堆文件 而无需任何文件元数据 例如时间戳 这zip命令似乎总是保留元数据 我没有找到禁用元数据的方法 我希望解决方案是一个命令或最多一个 python 脚本 谢谢 正如一些帖子已经指出的那样 zip 标头中的大
  • 行未从树视图复制

    该行未在树视图中复制 我在按行并复制并粘贴到未粘贴的任何地方后制作了弹出复制 The code popup tk Menu tree opportunity tearoff 0 def row copy item tree opportun
  • 如何确定非阻塞套接字是否真正连接?

    这个问题不仅限于Python 这是一个一般的套接字问题 我有一个非阻塞套接字 想要连接到一台可访问的机器 在另一端 该端口不存在 为什么 select 仍然成功 我预计会超时 sock send 因管道损坏而失败 select 之后如何确定
  • python 中分割字符串以获得一个值?

    需要帮助 假设我在名为 input 的变量中有一个字符串 Sam Person name kind input split 通过执行上述操作 我得到两个具有不同字符串 Sam 和 Person 的变量 有没有办法只获取第一个值 name S
  • Python - 用逗号分割,跳过括号内的内容

    我需要用逗号分隔字符串 但我对这种情况有一个问题 TEXT EXAMPLE THIS IS A EXAMPLE BUT NOT WORKS FOR ME SECOND THIRD 我想拆分并得到 var 0 TEXT EXAMPLE THI
  • Pandas重置索引未生效[重复]

    这个问题在这里已经有答案了 我不确定我在哪里误入歧途 但我似乎无法重置数据帧上的索引 当我跑步时test head 我得到以下输出 正如您所看到的 数据帧是一个切片 因此索引超出范围 我想做的是重置该数据帧的索引 所以我跑test rese
  • Python igraph:从图中删除顶点

    我正在使用安然电子邮件数据集 并尝试删除没有 enron com 的电子邮件地址 即我只想拥有安然电子邮件 当我尝试删除那些没有 enron com 的地址时 一些电子邮件由于某些原因被跳过 下面显示了一个小图 其中顶点是电子邮件地址 这是
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • 无法打开 Python。错误 0xc000007b

    我最近一直在学习 Python 3 我在我的上网本 32 位 Windows 7 上创建简单的小程序没有任何问题 当我将它安装在我的上网本上时 我没有遇到任何问题 但现在我已经开始使用它了 我想将它安装在我的台式机上 并且我有一个 我的桌面
  • 如何在 Python 中将彩色输出打印到终端?

    是否有与 Perl 等效的 Python 语言 print color red print
  • spacy 如何使用词嵌入进行命名实体识别 (NER)?

    我正在尝试使用以下方法训练 NER 模型spaCy识别位置 人 名和组织 我试图理解如何spaCy识别文本中的实体 但我无法找到答案 从这个问题 https github com explosion spaCy issues 491在 Gi
  • 更改 pandas 中多个日期时间列的时区信息

    有没有一种简单的方法可以将数据帧中的所有时间戳列转换为本地 任何时区 不是逐列进行吗 您可以有选择地将转换应用于所有日期时间列 首先 选择它们select dtypes https pandas pydata org pandas docs
  • 在可编辑的QSqlQueryModel中实现setEditStrategy

    这是后续这个问题 https stackoverflow com questions 49752388 editable qtableview of complex sql query 在那里 我们创建了 QSqlQueryModel 的可
  • 如何有效地从 loadmat 函数生成的嵌套 numpy 数组中提取值?

    python中是否有更有效的方法从嵌套的python列表中提取数据 例如A array array 12000000 dtype object 我一直在使用A 0 0 0 0 当你有很多像 A 这样的数据时 这似乎不是一个有效的方法 我也用
  • 如何在与应用程序初始化文件不同的文件中迭代 api 路由

    我有一个 apiroutes py 文件 其中定义了许多路由 例如 api route api read methods GET api route api write methods POST 其中 api 是导入 from import
  • 如何通过字符串匹配加速 pandas 行过滤?

    我经常需要过滤 pandas 数据框df by df df col name string value 并且我想加快行选择操作 有没有快速的方法可以做到这一点 例如 In 1 df mul df 3000 2000 3 reset inde
  • 如何在sphinx中启用数学?

    我在用sphinx http sphinx pocoo org index html与pngmath http sphinx pocoo org ext math html module sphinx ext pngmath扩展来记录我的代
  • 如何禁止 celery 中的 pickle 序列化

    Celery 默认使用 pickle 作为任务的序列化方法 如中所述FAQ http ask github com celery faq html isn t using pickle a security concern 这代表一个安全漏

随机推荐

  • 几个常用的匹配html标签的正则

    1 去除 a 标签 保留中间的文字 原字符串 a href www baidu com 点我跳转百度 a 正则 lt a A s gt gt 替换为 1 结果 点我跳转百度 2 去除指定标签及其里面的内容 原字符串 span style c
  • OP-TEE是如何使用RPMB来实现可信存储的

    1 目的 写这篇博客主要是为了记录这段时间的成果 方便自己和有需要的人理解可信存储 以及OP TEE是如何实现可信存储的 最近在重构公司的可信存储的实现 主要是想将Trust Storage的主要逻辑实现从user space挪到kerne
  • 互联网+SC联盟解决大学生五大难题!

    这是一个历史性的时刻 互联网 SC联盟 震撼面世 小编能想到的类似事件有宇宙大爆炸 恐龙灭绝 第一个人类诞生 中国四大发明 天呐 相信你也迫不及待地想了解了 赶紧阅读下文 来做第一个见证人吧 一 SC是什么意思 Study and Care
  • unity3D基础操作之01--unity3d窗口界面介绍

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 最常使用5种窗口 1 Scene场景编辑窗口 2 Game游戏运行窗口 需要注意的是 3 Hierarchy场景物体列表窗口 4 Project项目资源列表窗口 需
  • 【多线程操作】线程池模拟实现

    目录 一 线程池的作用 二 线程池的模拟实现 1 线程模块 Thread hpp 2 线程锁模块 LockGuard hpp 3 任务模块 Task hpp 4 线程池核心 ThreadPool hpp 一 线程池的作用 线程池是用来维护多
  • linux系统之字符设备驱动——点灯

    linux系统之字符设备驱动 点灯 1 原理图 底板 核心板 RGB RED GPIOA28 RGB GREEN GPIOE13 RGB BLUE GPIOB12 2 驱动代码 驱动代码程序 led dev c Author your na
  • C语言结构体中字符数组的问题

    第一个程序 include
  • 贪心之练习

    学习安排根据 代码随想录 贪心基础理论知识 贪心的思想 局部选优 全局最优 贪心的套路 先用贪心模拟 是否能举出反例 如果没有反例 用贪心 ps 也可以说没有套路 就是莽 练习 leetcode 55 跳跃游戏 略 leetcode 45
  • SpringMVC实现文件上传(常见报错解决:404、405、409)

    目录 传统方式的文件上传 SpringMVC普通方式的文件上传 SpringMVC跨服务器的文件上传 409错误 403 405错误 404错误 gt 本文源码 传统方式的文件上传 所需jar包
  • case when then else end语句的用法

    case具有两种格式 简单case函数和case搜索函数 简单case函数 case sex when 1 then 男 when 2 then 女 else 其他 end case搜索函数 经常用的是这个 case when sex 1
  • Java中字符编码问题和中文占几个字节的问题(ASCII Unicode UTF-8 )

    ASCII码 在计算机内部 所有的信息最终都表示为一个二进制的字符串 每一个二进制位 bit 有0和1两种状态 因此八个二进制位就可以组合出256种状态 这被称为一个字节 byte 也就是说 一个字节一共可以用来表示256种不同的状态 每一
  • layuiAdmin 框架单页面文档

    快速入门 部署 解压文件后 将 layuiAdmin 完整放置在任意目录 通过本地 web 服务器去访问 start index html 即可运行 Demo 由于 layuiAdmin 可采用前后端分离开发模式 因此你无需将其放置在你的服
  • STM32编译报错 Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_hd.o).——解决办法

    入门STM32写第一个程序时 引入启动文件startup stm32f10x hd s后编译报错 注 启动文件自行下载后加入工程中 一 原因 引入的启动文件startup stm32f10x hd s中 外部引用的SystemInit函数是
  • Spring Cloud Stream Binder 实现

    Spring Cloud Stream Binder 实现 JMS 实现 ActiveMQ 1 增加Maven依赖
  • unity4升级unity5动画文件不能正常播放解决方法

    using UnityEngine using System Collections using UnityEditor public class ZYResetTheAnimator MonoBehaviour MenuItem ZY R
  • 【python基础】爬虫练习

    不知道大家有没有通过豆瓣网寻找一些排名较高的电影 反正小编基本上是顺着排名一点点找电影看 本文将详细介绍如何使用Python爬虫抓取豆瓣网电影评论用户的观影习惯数据 并进行简单的数据处理和分析 目录 一 配置环境 1 1 安装Python
  • html2Canvas + jsPDF vue生成pdf(A4纵向或A3横向)

    1 第一个 将页面html转换成图片 npm install save html2canvas 第二个 将图片生成pdf npm install jspdf save 2 创建名称 htmlToPdf js 页面导出为pdf格式 impor
  • SpringBoot使用Swagger配置API接口文档

    概述 Swagger是一个用于设计 构建和文档化 RESTful API 的开源框架 它提供了一组工具 使得开发人员能够更轻松地定义 描述和测试API接口 具体来说 Swagger包含以下几个核心组件 Swagger规范 Swagger S
  • LaTeX Error: Unicode character解决方法

    由tex编译到pdf时报错信息如下 解决办法如下 第一步 在引用包的位置中添加 usepackage CJKutf8 并且在 begin document 下方添加 begin CJK UTF8 gbsn 第二步 在 end documen
  • torch将多个tensor张量合并为一个张量,只提高迷你批次的纬度

    在自己写pytorch的数据集加载函数时 会遇到一个问题 如何将多张图片张量合并到一起 提升迷你批次batch的纬度 但是不影响图片的大小和RGB通道数 解决方法 函数torch cat inputs dim 这里的inputs是你要合并的