web-dev-qa-db-fra.com

Utiliser CUDA avec pytorch?

J'ai cherché ici mais je n'ai trouvé que des messages obsolètes.

Je veux exécuter la formation sur mon GPU. J'ai trouvé sur certains forums que j'avais besoin d'appliquer .cuda() sur tout ce que je veux utiliser avec CUDA (je l'ai appliqué à tout ce que je pouvais sans faire planter le programme). Étonnamment, cela rend la formation encore plus lente.

Ensuite, j'ai trouvé que vous pouviez utiliser cette torch.set_default_tensor_type('torch.cuda.FloatTensor') pour utiliser CUDA. Avec les deux activés, rien ne change. Qu'est-ce qui se passe?

Existe-t-il un moyen d'activer de manière fiable CUDA sur l'ensemble du modèle?

EDIT: cela a été signalé comme doublon. Ce n'est pas le cas. Le message auquel j'étais lié n'a pas répondu à toutes mes questions.

De plus, que signifie MyModel()? J'ai besoin d'exemples plus tangibles, comme des exemples de code. (C'est le poste auquel je fais référence)

7
A. Dandelion

Vous pouvez utiliser la commande tensor.to(device) pour déplacer un tenseur vers un périphérique.

La commande .to() est également utilisée pour déplacer un modèle entier vers un appareil, comme dans le message auquel vous avez lié.

Une autre possibilité est de paramétrer le périphérique d'un tenseur lors de la création en utilisant l'argument du mot clé device=, Comme dans t = torch.tensor(some_list, device=device)

Pour définir le périphérique dynamiquement dans votre code, vous pouvez utiliser device = torch.device("cuda" if torch.cuda.is_available() else "cpu") pour définir cuda comme votre périphérique si possible.

Il existe divers exemples de code sur PyTorch Tutorials et dans la documentation liée ci-dessus qui pourraient vous aider.

6
M. Deckers