如何解决PyTorch random_split() 返回错误大小的加载器
我有一个用于我的数据集的自定义数据集加载器。我想将数据集拆分为 70% 的训练数据、20% 的验证数据和 10% 的测试数据。我有 16,488 条数据。所以,我的火车数据应该是 11,542。但它变成了 770 个训练数据、220 个验证数据和 110 个测试数据。我试过了,但无法找出问题所在。
sh.getRange(startrow,startcol,2DArray.length,2DArray[0].length).setValues(2DArray);
解决方法
看来你是给了
final Map<String,String> keys = new LinkedHashMap<>(); {
// fill the map in special order
keys.put("name","Name Part");
keys.put("age","Test Age");
/* and other needed keys*/
}
public String createId(List<String> list) {
Set<String> words = new HashSet<>(list);
return keys.keySet()
.stream()
.filter(words::contains) // faster lookup O(1) at the cost of another collection
.map(keys::get)
.collect(Collectors.joining("_")); // or Collectors.joining()
}
System.out.println(createId(Arrays.asList("age","surname","name")));
// output: Name Part_Test Age
由于数据加载器是可迭代的,它可能只是为您提供第一批的 len()。 它还解释了为什么您会得到火车数据 = 770,而它应该是 11,542。因为,
batch_size=15
分配 batch_size = 1 应该可以解决问题。
16488 / 15 * 0.7 = 769.44 ≈ 770
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。