Ошибка PyTorch с ожидаемым объектом масштабирования, но вместо этого получил объект масштабирования Long - PullRequest
0 голосов
/ 03 января 2019

Таким образом, я следую за курсом по 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

Комучестно говоря, я ожидаю, что остальная часть программы запустится, но здесь всегда происходит сбой, извините, я не могу более точно сказать, что я ожидаю, потому что я не знаю, что я впервые делаю правильный ИИ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...