PyTorch错误,带有缩放器浮标的预期对象,但得到了缩放器Long

时间:2019-01-03 14:20:44

标签: python python-3.x anaconda pytorch

因此,我正在学习有关Udemy(人工智能a-z)的课程,但遇到错误并显示以下内容: 返回图(lambda x:变量(torch.cat(x,0)),样本)  RuntimeError:标量类型为Float的预期对象,但在位置#1'张量'的序列参数中,序列元素1的标量类型为Long

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

我已经尝试修改上一行(示例),以查看是否需要将其转换为Long,但是除非做错了,否则它是行不通的

ai.py包含的第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)

ai.py包含的第74-87行(称为示例方法)

def update(self, reward, new_signal):
    new_state = torch.Tensor(new_signal).float().unsqueeze(0)
    self.memory.push((self.last_state, new_state, 
    torch.LongTensor([int(self.last_action)]), 
    torch.tensor([self.last_reward])))
    action = self.select_action(new_state)
    if len(self.memory.memory) > 100:
        batch_state, batch_next_state, batch_reward, batch_action = 
        self.memory.sample(100)
    self.learn(batch_state, batch_next_state, batch_reward, batch_action)
    self.last_action = action
    self.last_state = new_state
    self.last_reward = reward
    self.reward_window.append(reward)
    if len(self.reward_window) > 1000:
        del self.reward_window[0]
    return action

说实话,我希望程序的其余部分都可以运行,但是它似乎总是在这里崩溃,对不起,我无法更具体地说明我的期望,这是因为我不知道这是我的第一次适当的AI

0 个答案:

没有答案