pytorch - 张量元组
问题描述
我最近问了这个问题的一部分。我正在构建一个聊天机器人,并且有一个功能会产生问题。函数如下:
def variable_from_sentence(sentence):
vec, length = indexes_from_sentence(sentence)
inputs = [vec]
lengths_inputs = [length]
if hp.cuda:
batch_inputs = Variable(torch.stack(torch.Tensor(inputs),1).cuda())
else:
batch_inputs = Variable(torch.stack(torch.Tensor(inputs),1))
return batch_inputs, lengths_inputs
但是当我尝试运行聊天机器人代码时,它给了我这个错误:
stack():参数“张量”(位置 1)必须是张量的元组,而不是张量
出于这个原因,我修复了这样的功能:
def variable_from_sentence(sentence):
vec, length = indexes_from_sentence(sentence)
inputs = [vec]
lengths_inputs = [length]
if hp.cuda:
batch_inputs = torch.stack(inputs, 1).cuda()
else:
batch_inputs = torch.stack(inputs, 1)
return batch_inputs, lengths_inputs
但它仍然给我错误,错误是这样的:
TypeError:预期张量作为参数 0 中的元素 0,但得到列表
在这种情况下我现在该怎么办?
解决方案
由于vec
andlength
都是整数,所以可以torch.tensor
直接使用:
def variable_from_sentence(sentence):
vec, length = indexes_from_sentence(sentence)
inputs = [vec]
lengths_inputs = [length]
if hp.cuda:
batch_inputs = torch.tensor(inputs, device='cuda')
else:
batch_inputs = torch.tensor(inputs)
return batch_inputs, lengths_inputs
推荐阅读
- html - 我在我的css上到处都放了“text-decoration:none”,但没有一个有效
- c# - C# Webdav 应用程序。需要将新目录作为 URI 传递给客户端。可能使用字符串?
- microsoft-graph-api - Microsoft Graph 为所有租户获取 Teams 呼叫
- mysql - 如何结合结果来获得阿森纳赢得所有可用六分的球队数量
- python - 使用 tensorflow 运行 YOLOv3 模型检测车辆时出现属性错误
- android - IOException 文件太大,在运行 react-native run-android 命令时在 mac 上下载 gradle
- python - 展平 JSON 嵌套键值对以转换为 csv
- java - 无法在 javaFXML 中使用按钮打开新窗口
- xml - XPath 按值引用属性?
- vim - 键入时自动将项目符号列表扩展为树结构