Почему мы используем метод to () в pytorch? - PullRequest
0 голосов
/ 23 июня 2019

Я видел этот метод несколько раз.Каковы цели и преимущества этого?Большое спасибо!

1 Ответ

1 голос
/ 23 июня 2019

Зачем нам использовать метод (устройство) в pytorch?

torch.Tensor.to - это многоцелевой метод.

Вы можете не только выполнять преобразование типов, но также перемещать тензор ЦП и ГП и перемещать ТП в ЦП:

tensor = torch.randn(2, 2)  
print(tensor)
tensor = tensor.to(torch.float64) 
print(tensor) #dtype=torch.float64
tensor = tensor.to("cuda") 
print(tensor) #device='cuda:0', dtype=torch.float64)
tensor = tensor.to("cpu") 
print(tensor) #dtype=torch.float64
tensor = tensor.to(torch.float32) 
print(tensor) # won't print dtype=torch.float32 since it is by default

Поскольку CPU и GPU - это разные добрые воспоминания, они должны общаться друг с другом. Вот почему у нас есть to("cuda") и to("cpu"), которые мы называем тензорными.

Обычно при загрузке обучающих наборов данных (изображений):

  • вы скачиваете их с URL (например, MNIST http://deeplearning.net/data/mnist/mnist.pkl.gz)
  • распаковать их
  • конвертирует их в массивы
  • конвертировать массивы numpy в тензоры (так как это быстро)
  • переместите их в GPU для обучения. to("cuda")

Вы можете создавать тензоры и перемещать их в GPU следующим образом.

torch.zeros(1000).to("cuda")

Но есть хитрость, иногда вы можете даже загрузить их напрямую в графический процессор, не перегружая процессор.

torch.zeros(1000, device="gpu")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...