如何解决难以将numpy数组转换为张量使用tf.convert_to_tensor和.todevice的问题
我试图将一个numpy数组转换为张量,但遇到了很多问题。似乎没有一种简单的方法可以将张量中的值替换为其索引,所以我正在这样做:
pose_body = np.zeros([1,63])
pose_body[0,0] = 0.2
pose_body = tf.convert_to_tensor(pose_body)
pose_body = pose_body.to(comp_device)
我需要一个63长的零张量,并且我希望能够轻松地更改放置0.2的索引。 到目前为止,这个pose_body张量看起来像这样:
tf.Tensor( [[0.2 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.0.0.0.0.0.0。 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0。 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0。 0. 0. 0. 0. 0. 0. 0. 0. 0.]],shape =(1,63),dtype = float64)
comp设备的定义如下:
comp_device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
当我尝试在不使用.to(comp_device)
的情况下转换张量时,出现以下错误:
TypeError:预期张量作为参数0中的元素1,但得到了tensorflow.python.framework.ops.EagerTensor
如果我不将数组转换为张量,则除“但有numpy.ndarray”外,我将得到相同的错误。这使我相信张量并没有真正转换为我所需的张量。
包含.to(comp_device)
时出现此错误:
AttributeError:“ tensorflow.python.framework.ops.EagerTensor”对象没有属性“至”
我认为这些问题源于转换为张量会创建EagerTensor(?)的事实。我正在改编其他人的代码,并且在像这样创建张量时,它可以完美地工作:
pose_body = torch.full([1,63],0.2).to(comp_device)
此正确的pose_body张量看起来像这样:
张量([[0.2000,0.2000,0.2000,0.2000,0.2000,0.2000,0.2000,0.2000,0.2000, 0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000, 0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000, 0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000, 0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000, 0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000、0.2000, 0.2000,0.2000,0.2000,0.2000,0.2000,0.2000,0.2000,0.2000,0.2000]], device ='cuda:0')
我想知道是否有人有任何建议,我只用python编程了几个月。由于我对此很陌生,我认为我可能缺少一种简单的方法来使我要编写的张量看起来像可行的张量。让我知道是否需要更多信息。我正在jupyter笔记本中运行python3。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。