paddle 不支持uint32, 但是在文档里表明了支持

8e2ybdfx  于 4个月前  发布在  其他
关注(0)|答案(7)|浏览(56)

bug描述 Describe the Bug

import paddle
import numpy as np

# 创建一个uint32的numpy array
data = np.array([1, 2, 3], dtype='uint32')

# 转换为Paddle Tensor
tensor = paddle.to_tensor(data)
# 2147483647
# 2267117488
print(tensor)

其他补充信息 Additional Supplementary Information

No response

yeotifhr

yeotifhr1#

你好,这个问题我看下,有结论或者修复的PR会更新在这里

i34xakig

i34xakig2#

你好,Paddle支持的数据类型可以参考这个文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/beginner/tensor_cn.html#tensor-dtype

你图里的文档是自定义C算子的文档,具体是指当自定义C算子时,输入的tensor支持下面的类型,其中包括uint32;

但是你给的测试代码为python代码,这里支持的数据类型与自定义C++算子无关,Paddle暂时暂未支持uint32类型的数据从numpy转换为paddle.tensor

u4vypkhs

u4vypkhs3#

你好,Paddle支持的数据类型可以参考这个文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/beginner/tensor_cn.html#tensor-dtype

你图里的文档是自定义C算子的文档,具体是指当自定义C算子时,输入的tensor支持下面的类型,其中包括uint32;

但是你给的测试代码为python代码,这里支持的数据类型与自定义C++算子无关,Paddle暂时暂未支持uint32类型的数据从numpy转换为paddle.tensor

那自定义算子里做好的unint32 Tensor怎么导出到python 的paddle Tensor?

anhgbhbe

anhgbhbe4#

请问是什么情况下 uint32 tensor 要导出到python的paddle Tensor呢? 你的需求是啥呢

deyfvvtc

deyfvvtc5#

请问是什么情况下 uint32 tensor 要导出到python的paddle Tensor呢? 你的需求是啥呢

我正在接入Open3D 的临近搜索算法

算法

  • 首先构建一个HashTable, 标记像素化分块的空间中,散点属于空间的那一个块
  • 其次进行固定半径的临近搜索

torch实现

  • Open3D会使用torch::Tensor创建一个int32的Tensor
  • HashTable算子:然后这个int32的tensor会cast为uint32的device数组指针,并导入到Open3D的cuda核函数中进行运算
  • python:uint32数组以int32的tensor格式保存
  • RadiusSearch算子:读取int32的tensor,再cast为unit32进行运算
  • python:获取搜索结果,删除中间变量(int32的tensor)
ctehm74n

ctehm74n6#

请问是什么情况下 uint32 tensor 要导出到python的paddle Tensor呢? 你的需求是啥呢

我正在接入Open3D 的临近搜索算法

算法

  • 首先构建一个HashTable, 标记像素化分块的空间中,散点属于空间的那一个块
  • 其次进行固定半径的临近搜索

torch实现

  • Open3D会使用torch::Tensor创建一个int32的Tensor
  • HashTable算子:然后这个int32的tensor会cast为uint32的device数组指针,并导入到Open3D的cuda核函数中进行运算
  • python:uint32数组以int32的tensor格式保存
  • RadiusSearch算子:读取int32的tensor,再cast为unit32进行运算
  • python:获取搜索结果,删除中间变量(int32的tensor)
    https://github.com/isl-org/Open3D

68bkxrlz

68bkxrlz7#

这个问题是这样的,框架底层的tensor是支持,只是好多算子没有适配这个unit32的逻辑,如果自定义算子适配了uint32,这个保存时能跑的通的

相关问题