躺不平的废柴 2023-04-11 13:55 采纳率: 75%
浏览 116
已结题

怎么解决TypeError: transpose() received an invalid combination of arguments

遇到报错
TypeError: transpose() received an invalid combination of arguments - got (int, int, int), but expected one of:

  • (name dim0, name dim1)
  • (int dim0, int dim1)
    请问应该怎么解决呢?
  • 写回答

2条回答 默认 最新

  • 红色荷包蛋 2023-04-11 14:27
    关注

    根据错误信息,R.transpose(0, 2, 1) 函数接收到了 (int, int, int) 类型的参数,但是期望的参数类型是 (name dim0, name dim1) 或者 (int dim0, int dim1),这说明应该是输入的参数格式有误。

    根据你的代码,R 是一个形状为 (B, 3, 3) 的张量,其中 B 是 batch size。因此,正确的 transpose 函数调用方式应该是:

    R.transpose(1, 2)  # 将 R 张量的第 1 维和第 2 维进行转置
    

    在这里,我们将第 1 维和第 2 维进行转置,因为你想要对每个 batch 中的 3x3 矩阵进行转置。

    修改后的代码如下:

    def mge_transform(g, a, normals=None):
        R = g[..., :3, :3]  # (B, 3, 3)
        p = g[..., :3, 3]  # (B, 3)
    
        if len(g.shape) == len(a.shape):
            b = F.matmul(a, R.transpose(1, 2)) + F.expand_dims(p, axis=1)
        else:
            raise NotImplementedError
    

    如果还有问题,请检查一下 igtpoints_src 张量的维度是否与上述代码中的张量维度相同。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月19日
  • 已采纳回答 4月11日
  • 修改了问题 4月11日
  • 创建了问题 4月11日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度