【发布时间】:2021-12-24 09:31:23
【问题描述】:
我检查并看到我已经在 GPU (context_vector) 中定义了我的张量,但是当我在 Colab 上运行时,它总是显示错误“预期所有张量都在同一设备上,但发现至少两个设备、cpu 和 cuda" 错误轨迹是这样的:
RuntimeError Traceback (most recent call last)
<ipython-input-16-bf7edd8e474b> in <module>()
85 for context, target in data:
86 context_vector = make_context_vector(context)
---> 87 log_probs = model(context_vector)
88 total_loss += loss_function(log_probs, torch.tensor([target]).to(device))
89 #optimize at the end of each epoch
这是我的 make_context_vector 函数:
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
def make_context_vector(context):
return torch.tensor(context, dtype=torch.long).to(device)
这是我的转发功能:
def forward(self, inputs):
embeds = sum(self.embeddings(inputs)).view(1,-1)
# print('embeds size: {}'.format(embeds.shape))
out = self.linear1(embeds)
out = self.activation_function1(out)
# print('out1 size: {}'.format(out.shape))
out = self.linear2(out)
out = self.activation_function2(out)
return out
#TRAINING
for epoch in range(50):
total_loss = 0
for context, target in data:
context_vector = make_context_vector(context)
log_probs = model(context_vector)
total_loss += loss_function(log_probs, torch.tensor([target], device = device))
#optimize at the end of each epoch
optimizer.zero_grad()
total_loss.backward()
optimizer.step()
请大家帮忙! 谢谢
【问题讨论】:
标签: python gpu google-colaboratory