torch.cat过程中遇到的问题

2023-11-17

项目场景:

有关深度强化学习过程中使用torch.cat遇到的问题


问题描述

在学习MEC,使用深度强化学习改变卸载率的过程中,要将action和state通过torch.cat合并的时候遇到的问题

第一个问题:torch.cat当中直接使用transitions.state

		state = torch.cat(transitions.state)

报错提示:
TypeError: expected Tensor as element 0 in argument 0, but got numpy.ndarray

第二个问题:torch.cat当中直接使用[torch.tensor(a) for a in transitions.action]

        action = [torch.tensor(a) for a in transitions.action]
        action = torch.cat(action)

报错提示:
RuntimeError: zero-dimensional tensor (at position 0) cannot be concatenated

第三个问题: torch.cat当中直接使用next_state = [torch.from_numpy(s) for s in transitions.next_state]

        next_state = [torch.from_numpy(s) for s in transitions.next_state]
        next_state = torch.cat(next_state)

报错提示:
TypeError: expected np.ndarray (got int)


原因分析:

分析:torch.cat需要的参数必须是以下格式ndarray当中是tensor,tensor当中又必须是ndarray这种嵌套的形式,举个例子:[tensor([5.2626, 3.4518, 4.4650, 6.1861, 3.0479]), tensor([5.2572, 3.4194, 4.4557, 6.2838, 3.0352]), tensor([5.2626, 3.4338, 4.4604, 6.2512, 3.0444])],像是这种形式

根据以上分析,查看上面两个数据的transitions.state和action长什么样。

transitions.state的样子:(array([5.34502891, 3.50129482, 4.39213256, 6.07983465, 2.73172546]), array([5.33968388, 3.50129482, 4.39676183, 6.10588068, 2.75003088]), array([5.34502891, 3.49770036, 4.39213256, 6.09285766, 2.73477636]))

action和next_state的样子:[tensor(8), tensor(0), tensor(0), tensor(7), tensor(5), tensor(0), tensor(3)]


解决方案:

第一个问题的解决方案:
使用state = [torch.from_numpy(s) for s in transitions.state] 将每一个numpy转化为tensor类型

第二个问题的解决方案:
使用action = [torch.tensor([a]) for a in transitions.action]将其封装为数组类型之后再转化为tensor类型

第三个问题的解决方案:
将from_numpy更改为tensor,记得在迭代变量当中加入中括号,将其变为数组next_state = [torch.tensor([a]) for a in transitions.next_state]

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

torch.cat过程中遇到的问题 的相关文章

随机推荐

  • 《动手学深度学习 Pytorch版》 5.4 自定义层

    5 4 1 不带参数的层 import torch import torch nn functional as F from torch import nn class CenteredLayer nn Module def init se
  • html中按钮下拉菜单,Bootstrap3.0学习笔记之按钮与下拉菜单

    前面的文章算是把Bootstrap CSS部分简单的学习了一遍 应该忽视了比较多的细节问题 不过大部分的内容我都过了一遍 并且用代码实现了一遍 而且看到了真实的效果 挺不错的 那么接下来的几篇文章主要来讲解Bootstrap的组件 那么本文
  • 回收站被清空如何找回

    回收站被清空如何找回 清空回收站 可以是手动清理也可以是自动定期清理 不过在清空回收站前 还是先排查所有文件 以防止误删的或意外删除的 但很多时候回收站是存放大量临时删除的文件 不可能在去一个一个排查的 通常都是看一下就直接按清空键清空了
  • Request请求

    Request请求 Request请求 就是客户端希望从服务器端获取资源 向服务器发出询问 在B S架构中 就是客户浏览器向服务器发出询问 在我们的JavaEE工程中 客户浏览器发出询问 要遵循HTTP协议所规定的 请求对象 就是在Java
  • java抽象类和接口编程题_Java 抽象类与接口 编程练习

    一 面向抽象编程 7175 编程题 编程语言 Java 題目內容 使用接口或者抽象类编写程序实现显示员工基本信息 具体要求如下 1 使用接口或者抽象类实现基类Employer 体会接口和抽象类的不同 包含姓名 部门和工资三个属性 显示工资的
  • APT攻击各阶段简介

    根据美国国防承包商洛克希德 马丁公司提出的网络杀伤链模型 APT攻击主要由7个阶段组成 分别为侦查跟踪 武器构建 载荷投递 漏洞利用 安装植入 命令与控制 目标达成 阶段1 侦查跟踪 侦查跟踪指攻击者在选定好攻击目标后 收集跟目标有关的情报
  • 基于微信小程序的医院预约挂号系统,附源码、数据库

    博主介绍 程序员徐师兄 7年大厂程序员经历 全网粉丝30W csdn博客专家 掘金 华为云 阿里云 InfoQ等平台优质作者 专注于Java技术领域和毕业项目实战 1 简介 Java基于小程序的医院预约挂号小程序 系统主要功能可以分为后台管
  • 在VS2015中让UnityShader脚本关键词高亮

    在写Unity中的shaderlab时 习惯了VS的同志们 想实现在VS2012 2015中显示Shader 关键字高亮 这里有一个方法 效果如图 这需要一个工具 在我的资源里面 http download csdn net detail
  • 个人IOS技能树

    一转眼 进入IOS领域已经半年了 整理了一下个人发展技能树 暂定时间为一年 技能树的最终目的是成为好的程序员 并且最终超越程序员
  • 使用jQuery创建节点、将节点插入到指定的位置

  • 钉钉应用开发,提示Warning: Invalid CERT Authority

    我司的网页应用与钉钉进行了单点登录的对接 结果在钉钉App中打开提示SSL error 顶上的提示是Warning invalid CERT Authority 点击Yes可以正常访问 只是每次提示很麻烦 应用是Nginx Tomcat架构
  • 关于三通道彩色图像的存储方式理解

    像素值以 矩阵方式 保存 矩阵的大小取决于图像采用的颜色模型 灰度图 如果是灰度图 那么图像就是单通道的 图像中的每个像素只需要一个矩阵元素来保存 一般就是 0 255 的值 保存灰度图的矩阵长这样 其中 Row0 和 Column0 的交
  • 测试用例设计方法——等价类

    等价类 思路 输入的集合是无穷的 不能全部都覆盖到 依据需求将输入 特殊情况下会考虑输出 划分为若干个等价类 从等价类中挑选一个测试用例 如果这个测试用例通过 则认为所代表的等价类通过 这样就可以用较少的测试用例达到尽可能多的功能覆盖 解决
  • usart串口只能发送不能接收

    今天出了一个低级错误 记录一下 下次注意 我想用stm32做一个usart发送和接收的程序 目标 发送用的是usart1串口 接收用的是中断 当有数据发送给单片机的时候 会触发中断 中断函数中将接受到的数据再发送出去 程序非常简单 我就不放
  • SpringBoot项目捕捉@Validated下@NotBlank、@NotNull等注解抛出的异常

    java捕捉 Validated下 NotBlank NotNull等注解抛出的异常 使用场景 新增通用返回实体类 修改controller 实体类添加 NotBlank 新增WebConfig 新增WebExceptionHandler
  • C++学习总结(二十二)——类模板与友元(友元函数,友元类模板)

    一 类模板与友元 当友元函数在外部定义时 友元函数以及所属的类必须声明 友元函数放在类模板的内部时 友元函数可以直接调用 无需加类限定符 include
  • 使用boost库来计算文件夹的大小

    include
  • 投资学实务 期货日志及实践总结

    我的期货交易可以分为三个阶段 摸索阶段9 27 9 30 日期 单日净盈利 累计净值 单日回撤 9 27 14370 0 9707 0 03 9 28 29670 1 0295 0 9 29 11855 1 0517 0 9 30 1647
  • Acwing-27. 数值的整数次方

    由于本题的指数是int范围 可能很大 所以需要用快速幂 Acwing 875 快速幂 中有详细介绍快速幂 点击链接即可传送 求解 https blog csdn net weixin 43844521 article details 127
  • torch.cat过程中遇到的问题

    项目场景 有关深度强化学习过程中使用torch cat遇到的问题 问题描述 在学习MEC 使用深度强化学习改变卸载率的过程中 要将action和state通过torch cat合并的时候遇到的问题 第一个问题 torch cat当中直接使用