neural-network - 训练 MIL 模型时,“张量”对象的错误没有属性“项目”
问题描述
我正在尝试在语音处理区域中使用 MIL(多实例学习)。我已经使用 Google Colab 环境逐行实现了 Lori Sheng 在 github 上发布的代码。我在最后一节出现了一个错误,即“在 [60] 中”。你能帮我解决这个错误吗?我试图找到近两周的解决方案,但没有解决方案,因为我是新手。我试图在下面详细解释错误。
源码链接为:https ://github.com/lsheng23/Practicum/blob/master/MIL_MNIST/end_to_end_mnist_MIL.ipynb
在[60]中,“outputs = model(X)”调用[58]中“MIL_NN”类的“forward”方法。
然后它会抛出那种错误;
89 figure out batches
90 """
91 bag_feature, bag_att, bag_keys = list(zip(*[list(self.agg(ff.float())) + [idx] for idx, ff in (bag_features.items())]))
92 AttributeError: 'Tensor' object has no attribute 'items'
我认为这可能是因为“tf eager execution”之类的东西,但我意识到事实并非如此。
我还应用了作者的注释,即 n=7*512,但仍然没有解决方案。
同样在此错误之前,由于“找不到文件/文件不存在”错误,我需要在作者的代码中进行一些更正(即使我不确定它是否正确)。这些曾经是;
在 [39] 从“feature_array.npy”到“feature_array_full.npy”和在 [40] 从“feature_t_array.npy”到“feature_test_array_full.npy”
提前感谢您的宝贵帮助。
解决方案
请注意,torch.tensor
没有一个名为items()
. 使用item()
(singular) 来获取原始数字,但是,使用 pythondict
你可以使用.items()
. 两者是不同的。
在您提供的示例中,bag_features
是 a dict
,但是根据您发布的错误,您正在调用.items()
张量。尝试打印type(bag_features)
并查看返回的内容。
推荐阅读
- django - 未找到“filer_folder_changelist”的反向
- java - 自定义 AppCompatEditText 组件未初始化
- r - GGPLOT2:错误:出现意外符号:“ geom_errorbar(aes(ymin=Water_Pore-sd, ymax=Water_Pore+sd))
- wordpress - 解析错误:语法错误,第 421 行 /home/centricano/public_html/wp-includes/class-oembed.php 中的意外“文本”(T_STRING)
- node.js - 在 Node.js 中使用 async/await 函数限制从 CSV 文件读取的行数
- c# - 机器人加入语音频道,然后立即离开 Discord.Net
- android - 如何在主文件夹中导入口味的java文件?
- mysql - 案例,分组,加入多个表
- javascript - Redux 中的 PUT 方法和 reducer
- java - 如何从ArrayList中获取所有行
> 在特定列中具有特定值?