因此,我正在学习有关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