import torch
import torch.nn as nn
class model(nn.Module):
def __init__(self):
super(model,self).__init__()
self.mat = torch.randn(2,2)
def forward(self,x):
print('self.mat.device is',self.mat.device)
x = torch.mv(self.mat,x)
return x
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
m = model()
m.to(device)
x = torch.tensor([2.,1.])
x = x.to(device)
m(x)
< /code>
Die Ausgabe ist < /p>
self.mat.device is cpu
< /code>
und gleich danach kommt < /p>
Traceback (most recent call last):
File "Z:\cudatest.py", line 21, in
print(m(x))
File "E:\Python37\lib\site-packages\torch\nn\modules\module.py", line 532, in __call__
result = self.forward(*input, **kwargs)
File "Z:\cudatest.py", line 11, in forward
x = torch.mv(self.mat,x)
RuntimeError: Expected object of device type cuda but got device type cpu for argument #1 'self' in call to _th_mv
< /code>
Der Code funktioniert gut, wenn ich Geräte = fackel.device ('cpu') < /code> setze. Es scheint, dass das [url=viewtopic.php?t=26065]Problem[/url] modell ist. Warum funktioniert Whise nicht? Wie kann ich das beheben? Bitte beachten Sie Folgendes:
[list]
[*] Obwohl dieses spezielle Beispiel durch Verwendung von self -mat = nn.linear (2,2)
und x = self.mat (x) stattdessen, benötigt ich auch in einigen Daten, die in etwas vorwärts gelagert werden, (). Wie kann ich einen solchen Tensor konstruieren und an GPU senden, wenn ich M.TO (Gerät)
[*] Aufrufe nicht im Voraus bekannt ist, ob der Computer GPU hat oder nicht. Daher ist das Schreiben von self.mat = self.mat.cuda () keine gute Lösung für meinen Fall.
[/list]
class model(nn.Module): def __init__(self): super(model,self).__init__() self.mat = torch.randn(2,2)
def forward(self,x): print('self.mat.device is',self.mat.device) x = torch.mv(self.mat,x) return x
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') m = model() m.to(device)
x = torch.tensor([2.,1.]) x = x.to(device)
m(x) < /code>
Die Ausgabe ist < /p>
self.mat.device is cpu < /code>
und gleich danach kommt < /p>
Traceback (most recent call last): File "Z:\cudatest.py", line 21, in print(m(x)) File "E:\Python37\lib\site-packages\torch\nn\modules\module.py", line 532, in __call__ result = self.forward(*input, **kwargs) File "Z:\cudatest.py", line 11, in forward x = torch.mv(self.mat,x) RuntimeError: Expected object of device type cuda but got device type cpu for argument #1 'self' in call to _th_mv < /code>
Der Code funktioniert gut, wenn ich Geräte = fackel.device ('cpu') < /code> setze. Es scheint, dass das [url=viewtopic.php?t=26065]Problem[/url] modell ist. Warum funktioniert Whise nicht? Wie kann ich das beheben? Bitte beachten Sie Folgendes:
[list] [*] Obwohl dieses spezielle Beispiel durch Verwendung von self -mat = nn.linear (2,2) [/code] und x = self.mat (x) stattdessen, benötigt ich auch in einigen Daten, die in etwas vorwärts gelagert werden, (). Wie kann ich einen solchen Tensor konstruieren und an GPU senden, wenn ich M.TO (Gerät) [*] Aufrufe nicht im Voraus bekannt ist, ob der Computer GPU hat oder nicht. Daher ist das Schreiben von self.mat = self.mat.cuda () keine gute Lösung für meinen Fall. [/list]
Ich habe in meiner vorherigen Frage bereits gekannt (wird in C ++ gut definiert? Bei einer statischen Variablen, die eine std :: string enthält, scheinen die endgültigen Kopierinitialisierung, wenn...
Ich habe zwei Pakete in meinem Projekt: ODP.Proj und odp.proj.test . Es gibt bestimmte Methoden, die ich nur für die Klassen in diesen beiden Paketen sichtbar sein möchte. Wie kann ich das tun? Ich...
Ich definiere ein statisches Inline-Datenelement in einer C++17-Klasse ( inline static SharedData gSharedData; ).
Ich habe zwei Fragen:
1)Es scheint, dass gSharedData instanziiert wurde bevor...
Ich habe kürzlich mit statischen Mitgliedern in einer Schnittstelle herumgespielt. Besonders mit statischen Methoden. Ich habe festgestellt, dass ich bei der Definition einer statischen Methode in...
Frage:
Ich arbeite an einem Django -Projekt, das Scrapy verwendet, um Mitgliederprofile von einer Website abzukratzen. Die abgekratzten Daten werden mit einer Methode namens match_maker verarbeitet....