Таким образом, я следую за курсом по Udemy (искусственный интеллект az), и я столкнулся с ошибкой, в которой говорится следующее: return map (lambda x: Variable (torch.cat (x, 0)), samples) RuntimeError: Ожидаемый объект скалярного типа Float, но получил скалярный тип Long для элемента последовательности 1 в аргументе последовательности в позиции # 1 'tenors'
Кажется, что элемент также меняется каждый раз, поэтому я не знаю, где может возникнуть проблемаМожет быть, кто-нибудь, пожалуйста, помогите мне решить эту проблему?
Я уже пытался изменить предыдущую строку (примеры), чтобы увидеть, если это то, что мне нужно конвертировать в Long, но это не работает, если только я делаю это неправильно
Включенные строки 43-45 файла ai.py
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 файла ai.py (что вызывает метод выборки)
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
Комучестно говоря, я ожидаю, что остальная часть программы запустится, но здесь всегда происходит сбой, извините, я не могу более точно сказать, что я ожидаю, потому что я не знаю, что я впервые делаю правильный ИИ