Pytorch는 cpu와 gpu의 사용을 어떻게 전환하는지 상세히 설명합니다.

1550 단어 Pytorch전환cpugpu
앞에서 말했듯이pytorch에서 서버에 있는 gpu가 점용될 때 우리는 먼저 cpu로 코드를 디버깅하고 싶을 때가 많다. 그러면 gpu와 cpu의 전환이 필요하다.

메서드 1: x.to(device)


장치를 가변 매개 변수로 사용하려면argparse를 사용하여 불러오는 것을 추천합니다.
gpu 사용 시:

device='cuda'
x.to(device) # x tensor, cuda 
cpu 사용:

device='cpu'
x.to(device) 

방법 2: x.cuda()+CUDA_ 사용VISIBLE_DEVICES


많은 스티커에서 x.cuda()와 x.to('cuda')를 사용하는 것은 같은 효과이지만 x.cuda()의 단점은 cpu를 동적으로 전환할 수 없다는 것이다.하지만 명령행 매개변수 CUDA_와 일치합니다.VISIBLE_디바이스는 전환할 수 있습니다.
서버에 python 스크립트를 만듭니다.py:

import torch
print(torch.cuda.device_count()) #  gpu 
print(torch.cuda.is_available()) #  gpu
우선 정상적인 운행 상황을 살펴보자.
  • 명령 실행:python t.py
  • 출력 결과: 서버에 gpu가 두 개 있기 때문에 우리가 원하는 결과입니다..

  • True
    gpu 하나만 사용하려면 실행하기 전에 매개 변수를 추가하십시오.
  • CUDA_VISIBLE_DEVICES=0 python t.py, 예를 들어 gpu 0을 사용합니다
  • 다음은 무엇을 출력하는지 봅시다. 그렇습니다!프로그램에서 gpu 한 조각만 보였어요.

  • True
    다음은 우리가 cpu를 사용하고 싶다면?
  • CUDA_VISIBLE_DEVICES=""python t.py
  • 출력 결과: 볼 수 있습니다. 서버에 2개의 cpu가 있지만 저희가 실행 파라미터를 설정하면 프로그램에서도 볼 수 없습니다!
  • 0
    False
    따라서 본론으로 돌아가서 x.cuda()를 사용하여 gpu를 분배할 때torch만 사용하면 됩니다.cuda.is_available () 판단을 추가하면 됩니다. cpu를 사용하고 싶을 때 프로그램의 명령행 매개 변수를 제어합니다.
    
    if torch.cuda.is_available():
      x= x.cuda()
    이 Pytorch가 cpu와 gpu를 어떻게 전환하는지에 대한 상세한 설명은 여기 있습니다. 더 많은 Pytorch가 cpu와 gpu를 전환하는 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!

    좋은 웹페이지 즐겨찾기