Pytorch: рдХреНрдпреЛрдВ model.cuda() рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╡рд░реНрдЧ рд╡рд┐рдзрд┐ рд╣реИ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рдЕрдкреНрд░реИрд▓ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pytorch/pytorch

import torch
from torch.autograd import Variable

a = Variable(torch.Tensor([1, 2]))
if torch.cuda.is_available():
    b = a.cuda()

b_data = b.data
b_grad = b.grad
b_grad_data = b.grad.data

рдпрджрд┐ .data рдФрд░ .grad рд╡рд░реНрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реИрдВ, рддреЛ .cuda() рдХреЛ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХреЛрдИ b = a.cuda рдХрд░ рд╕рдХреЗред рдореИрдВ рдпрд╣ рд╕реЛрдЪрдХрд░ рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдкреАрдЖрдИ рд╕реНрдерд┐рд░рддрд╛ рдХреЛ рдмрдврд╝рд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ .cuda() , .data рдФрд░ .grad torch.Tensor рд╣реИрдВ рдЗрд╕рд▓рд┐рдП cuda() рдХреЛ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ . рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ, GPU рдХреЗ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рдореЙрдбрд▓ рдХреЛ model.cuda рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

cuda рдХреЛ рдПрдХ рд╡рд┐рдзрд┐ рдмрдирд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдорд╣рдВрдЧрд╛ рдСрдкрд░реЗрд╢рди рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реАрдкреАрдпреВ рд╕реЗ рдЬреАрдкреАрдпреВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЙрдкреА рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЬрдмрдХрд┐ grad рдФрд░ data рд╕рд╕реНрддреЗ рдСрдкрд░реЗрд╢рди ( O(1) ) рд╣реИрдВ, рдЬреЛ рдХреЗрд╡рд▓ рд╕рдВрдмрдВрдзрд┐рдд рдЯреЗрдВрд╕рд░ рдХреЗ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ cuda рдПрдХ рд╡рд┐рдзрд┐ рдмрдирд╛рдирд╛ рдЙрдЪрд┐рдд рд╣реИред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cuda рдХреЛ рдПрдХ рд╡рд┐рдзрд┐ рдмрдирд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдорд╣рдВрдЧрд╛ рдСрдкрд░реЗрд╢рди рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реАрдкреАрдпреВ рд╕реЗ рдЬреАрдкреАрдпреВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЙрдкреА рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЬрдмрдХрд┐ grad рдФрд░ data рд╕рд╕реНрддреЗ рдСрдкрд░реЗрд╢рди ( O(1) ) рд╣реИрдВ, рдЬреЛ рдХреЗрд╡рд▓ рд╕рдВрдмрдВрдзрд┐рдд рдЯреЗрдВрд╕рд░ рдХреЗ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ cuda рдПрдХ рд╡рд┐рдзрд┐ рдмрдирд╛рдирд╛ рдЙрдЪрд┐рдд рд╣реИред

.cuda() CPU рдбреЗрдЯрд╛ рдХреЛ GPU рдореЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИред рдЖрдк рд╢рд╛рдпрдж рд╣рд░ рд╕рдордп рдбреЗрдЯрд╛ рдХреЛ GPU рдореЗрдВ рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ, рдЖрдк рдХреЗрд╡рд▓ GPU рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛред

рдЬреИрд╕рд╛ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рджреЛрдиреЛрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, .cuda рдХреЛ рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рдирд╛ рдЕрдиреБрдЪрд┐рдд рд╣реИред .cuda() рд╕рдВрджрд░реНрдн рджреЗрддреЗ рд╕рдордп рд╣рдо рдирдИ рд╡рд╕реНрддреБрдПрдВ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕