我已经使用mxnet训练了3D convnet。我保存了网络体系结构和参数,目的是用它测试更多数据以检查其性能。由于我没有训练,所以我不想获取数据集的批次。如何使网络读取整个数据集作为输入?仅通过网络,直接通过数据集对象只是4D张量,而网络需要5D。现在,我正在使用数据加载器,但将批处理大小设置为整个数据集,并且我觉得有一种更有效的方法可以执行此操作。
答案 0 :(得分:0)
DataLoader需要batch_size或BatchSampler。从理论上讲,您可以编写一个BatchSampler来将整个数据集作为一个批处理来获取,尽管如果批处理量很大,我认为您不会看到显着的性能提升。此外,如果您有多个工人,则使用批处理是有益的-是否考虑过使用num_workers> 0来利用并行处理?