首页 > 其他分享 >如何将list转为tensor

如何将list转为tensor

时间:2023-04-17 18:59:48浏览次数:32  
标签:tensor 0.3545 torch list batch 0.4461 0.0273 转为

如何将list转为tensor

在遇到需要将list转换为tensor的情况时,往往不能直接转换,而是需要借助 torch.cat 方法进行。为防止需要的时候找不到教程,本文给出示例进行该操作。

操作方法

问题

给定对于数据 xyx 的形状为 (2, 3, 4) ,表示 batch_size为2,每个batch有3个向量,每个向量维数是4y 的形状为 (2, 4) ,表示 batch_size为2,每个batch内仅有一个4维的向量。现在目标是将同一个 batchx 的3个向量分别和 y 的1个向量进行拼接,得到一个形状为 (2, 3, 4) 的数据。

代码

首先随机地生成 xy

import torch
x = torch.rand((2, 3, 4))
y = torch.rand((2, 4))
print(x)
print(y)

输出如下:

tensor([[[0.3170, 0.5800, 0.2717, 0.3887],
[0.0862, 0.4881, 0.1419, 0.1491],
[0.1860, 0.4508, 0.2637, 0.9106]],

    [[0.0923, 0.1211, 0.8768, 0.7573],
     [0.9067, 0.0651, 0.2780, 0.6712],
     [0.0755, 0.1534, 0.9984, 0.8169]]])

tensor([[0.1451, 0.0273, 0.5603, 0.3951],
[0.8981, 0.8639, 0.3545, 0.4461]])

第二步,拆分拼接

s = []
for xx, yy in zip(x, y):
    ss = []
    for i in xx:
        ss.append(torch.cat((i, yy), 0).unsqueeze(0))
    print(ss)
    ss = torch.cat(ss, dim=0)
    s.append(ss.unsqueeze(0))
s

输出如下:

[tensor([[[0.3170, 0.5800, 0.2717, 0.3887, 0.1451, 0.0273, 0.5603, 0.3951],
[0.0862, 0.4881, 0.1419, 0.1491, 0.1451, 0.0273, 0.5603, 0.3951],
[0.1860, 0.4508, 0.2637, 0.9106, 0.1451, 0.0273, 0.5603, 0.3951]]]),
tensor([[[0.0923, 0.1211, 0.8768, 0.7573, 0.8981, 0.8639, 0.3545, 0.4461],
[0.9067, 0.0651, 0.2780, 0.6712, 0.8981, 0.8639, 0.3545, 0.4461],
[0.0755, 0.1534, 0.9984, 0.8169, 0.8981, 0.8639, 0.3545, 0.4461]]])]

这一步完成了每一个 batch 中的拼接,但 batch 之间还是以 list 的方式链接的。

第三步,合成 batch

s = torch.cat(s, dim=0)
s

输出如下:

tensor([[[0.3170, 0.5800, 0.2717, 0.3887, 0.1451, 0.0273, 0.5603, 0.3951],
[0.0862, 0.4881, 0.1419, 0.1491, 0.1451, 0.0273, 0.5603, 0.3951],
[0.1860, 0.4508, 0.2637, 0.9106, 0.1451, 0.0273, 0.5603, 0.3951]],

    [[0.0923, 0.1211, 0.8768, 0.7573, 0.8981, 0.8639, 0.3545, 0.4461],
     [0.9067, 0.0651, 0.2780, 0.6712, 0.8981, 0.8639, 0.3545, 0.4461],
     [0.0755, 0.1534, 0.9984, 0.8169, 0.8981, 0.8639, 0.3545, 0.4461]]])

至此,目标达成!

标签:tensor,0.3545,torch,list,batch,0.4461,0.0273,转为
From: https://www.cnblogs.com/Meloniala/p/17326790.html

相关文章

  • HttpRuntime.Cache[key] as List<string>竟然会引用转值改变Cache的值
    HttpRuntime.Cache[key]asList<string>竟然会引用转值改变Cache的值此时HttpRuntime.Cache[key]的值会发生改变 ......
  • TStringList分割字符串
    beginTmpStrList:=TStringList.Create;tryTmpStrList.Delimiter:='-';TmpStrList.StrictDelimiter:=True;TmpStrList.NameValueSeparator:=#0;TmpStrList.Duplicates:=dupAccept;TmpStrList.QuoteChar:=#0;DoSomething;finallyTmpStrList.Fr......
  • 使用js对tensorspace/three.js/webgl进行截图
    使用js对tensorspace/three.js/webgl进行截图问题分析场景:在右侧,是tensorspace库使用three.js调用webgl对模型进行渲染的画面。我需要使用js对右侧画面进行截图,并保存至本地用于分析。问题:对webgl进行截图需要进行一些特别的操作,使用html2canvas行不通。同时,针对tensorspa......
  • 初始化ArrayList的方式
    本片文章用于归纳java中初始化一个ArrayList的几种方式add方法添加最基础的方式就是我们在new一个ArrayList之后使用add方法添加元素/***第一种方式,通过add方法*@return*/publicList<String>initOne(){List<String>list=newArrayL......
  • TensorFlow 2.0 的新增功能:第一、二部分
    原文:What'sNewinTensorFlow2.0协议:CCBY-NC-SA4.0译者:飞龙本文来自【ApacheCN深度学习译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则2.3.c第1部分:TensorFlow2.0-架构和API更改本书的这一部......
  • TensorFlow 2.0 的新增功能:第三、四部分
    原文:What'sNewinTensorFlow2.0协议:CCBY-NC-SA4.0译者:飞龙本文来自【ApacheCN深度学习译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则2.3.c第3部分:TensorFlow2.0-模型推断和部署以及AIY如果您......
  • TensorFlow 2 和 Keras 高级深度学习:1~5
    原文:AdvancedDeepLearningwithTensorFlow2andKeras协议:CCBY-NC-SA4.0译者:飞龙本文来自【ApacheCN深度学习译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则2.3.c一、使用Keras入门高级深度学习......
  • C#中list转table以及table转list
    一、datatable转list二、list转datatable遇见问题:Column'k'doesnotbelongtotable.原因:datatable中没有k列、需要  dtlist.Columns.Add("k");//加载表头数据 代码实现:publicAPIResultSortRoomListSum(List<UsK_OnlieRoom>elist){dtlist.Columns.Add(&......
  • python3-list
    1、介绍builtins.py文件中定义了list类,用于处理python中列表数据。list也是python的基本数据类型之一。列表是单列的元素集合,用[]包围,内部元素之间用,分隔列表的元素可以是任意类型,且某一列表中可以同时包含不同类型列表支持元素的增删改列表支持数值索引元素不会进行默认......
  • TensorFlow 智能移动项目:11~12
    原文:IntelligentmobileprojectswithTensorFlow协议:CCBY-NC-SA4.0译者:飞龙本文来自【ApacheCN深度学习译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则2.3.c十一、在移动设备上使用TensorFlowLite......