Pytorch работает медленнее на GPU, чем на CPU - PullRequest
0 голосов
/ 20 ноября 2018

Я довольно плохо знаком с Python / машинным обучением, и я пытался изучать PyTorch. Вот учебник, за которым я следовал: https://pytorch.org/tutorials/intermediate/char_rnn_classification_tutorial.html , который в основном является очень простым RNN для классификации имени на его язык. Когда я запускаю его на процессоре, окончательные результаты

100000 100% (2m 25s) 0.3983 Tsujimoto / Japanese ✓
Training completed! Time taken: 145.90 seconds.

Но когда я запускаю его на графическом процессоре, я получаю следующее

100000 100% (5m 56s) 0.1462 Mcgregor / Scottish ✓
Training completed! Time taken: 356.96 seconds.

Единственное, что я изменил, это функция train, отправив входные тензоры на устройство (device = torch.device("cuda:3" if torch.cuda.is_available() else "cpu")) и, конечно, поместив сам rnn в графический процессор (rnn = RNN(n_letters, n_hidden, n_categories).to(device):

def train(category_tensor, line_tensor):
    hidden = rnn.initHidden().to(device)
    category_tensor, line_tensor = category_tensor.to(device), line_tensor.to(device)
    rnn.zero_grad()
    for i in range(line_tensor.size()[0]):
        output, hidden = rnn(line_tensor[i], hidden)
    loss = F.nll_loss(output, category_tensor)
    loss.backward()
    optimizer.step()
    return output, loss.item()

Я что-то не так делаю?

Заранее спасибо!

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