Pythorch错误,预期对象为scaler float,但得到的对象为scaler Long

2024-04-26 13:27:39 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我正在学习Udemy(人工智能a-z)课程,我遇到了一个错误,它说: 返回映射(lambda x:变量(火炬猫(x,0)),样本) RuntimeError:应为标量类型Float的对象,但在序列参数的位置#1“tensors”处获得标量类型Long

元素似乎每次都在变化,所以我不知道问题出在哪里 有人能帮我解决这个问题吗?在

我已经尝试过修改前一行(示例),看看这是否是我需要转换为Long的内容,但它不起作用,除非它做错了

包含的第43-45行人工智能在

def sample(self, batch_size):
    samples = zip(*random.sample(self.memory, batch_size))
    return map(lambda x: Variable(torch.cat(x, 0)), samples)

包括第74-87行人工智能(什么叫sample方法)

^{pr2}$

老实说,我希望程序的其他部分都能运行,但它似乎总是在这里崩溃,抱歉,我不能更具体地说明我的期望,那是因为我不知道这是我第一次做一个合适的人工智能


Tags: samplelambdaself类型size错误batch人工智能
1条回答
网友
1楼 · 发布于 2024-04-26 13:27:39

根据https://pytorch.org/docs/stable/torch.html#torch.cat,你需要对你的x中的所有张量有相同的类型。但是你把各种张量混合在一起

self.memory.push((self.last_state, new_state, 
    torch.LongTensor([int(self.last_action)]), 
    torch.tensor([self.last_reward])))

所以这就是它抛出异常的原因。在

相关问题 更多 >