پیٹورچ ٹائپ میں غلطی: ٹارچ کی قسم متوقع آبجیکٹ ۔فلوٹ ٹینسر لیکن ٹائپ ٹارچ کوڈاڈا ملا ۔فلوٹ ٹینسر۔

Pytorch Type Error Expected Object Type Torch



Expected object of type torch.FloatTensor but found type torch.cuda.FloatTensor

پیٹورچٹ ڈیبگنگ عمل کے دوران ، اعداد و شمار کو حساب کتاب کرنے کے لئے ماڈل کو منتقل کیا جاتا ہے۔ یہ غلطی ظاہر ہوتی ہے ، جو آپ کے ڈیٹا فارمیٹ میں کسی مسئلہ کی نشاندہی کرتی ہے۔ ہوسکتا ہے کہ ماڈل جی پی یو پر ہو اور پیرامیٹرز سی پی یو ٹائپ ہوں۔ ہوسکتا ہے کہ ماڈل ایک سی پی یو ہو اور پیرامیٹرز جی پی یو قسم کے ہوں۔ .cuda () کا استعمال کرتے ہوئے تبادلوں کی وجہ سے ہے۔ دو طریقوں کو حل کیا جاسکتا ہے۔

1. چونکہ آپ کو فلوٹ ٹینسر کی ضرورت ہے ، لہذا اپنے ماڈل اور ڈیٹا کو سی پی یو میں ڈالیں ، اور جی پی یو کے ماڈل اور ان پٹ کو سی پی یو میں تبدیل کریں۔



device1=torch.device('cpu') Model_ft = model_ft.to(device1)# Convert the model to the cpu version. model_ft.train() Inputs = inputs.to(device1)# Converts input data to CPU version. Labels = labels.to(device1)# Converts the label to the CPU version. output = model_ft(inputs) _,preds = torch.max(output,1)

2. ماڈل اور ڈیٹا کو GPU ورژن میں تبدیل کریں۔ چونکہ پیرامیٹر کوڈا ہے ۔فلوٹ ٹینسر ، ماڈل کے پیرامیٹرز کیوڈا کی طرح ہیں۔ کاسٹ ان پٹ اور ماڈل GPU پر دستیاب ہیں۔



device1=torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') Model_ft = model_ft.to(device1)# Convert the model to the GPU version. model_ft.train() Inputs = inputs.to(device1)# Converts input data to GPU version. Labels = labels.to(device1)# converts the label to the GPU version. output = model_ft(inputs) _,preds = torch.max(output,1)