从 tensorflow 迁移到 pytorch:关于输入的实际考虑

数据挖掘 张量流 火炬
2022-03-10 00:30:15

随着 TF 2.0 的出现,以及必须重写或丢弃我的大部分脚本的确定性,我正在考虑切换到 pytorch。我最初喜欢 TF 是因为它的低级 API ——我认为试图一次成为一切都变得一团糟。此外,在 Windows 上编译该库是一个地狱。因此,在 Windows 上使用来自 C++ 的训练模型几乎变得不可能。

我看过 pytorch,我喜欢它的 API 简单且一致,Windows 用户直接从网站上看到 C++ 库。坦率地说,我觉得他们在和我调情。我认为 pytorch 是一个围绕 Lua 库的 python 包装器,但我显然错了。

TF的优势之一(也许是我卖点)是它的输入管道。无论是从旧tf.queue时代还是最近的tf.data框架,TF 总是试图提出一种输入管道,该管道能够在训练的同时对输入数据进行预处理和预取到设备内存中。这一切都在这个页面上得到了很好的解释

这种高效的输入管道在实践中对于实现 GPU 的高利用率非常重要,尤其是。当 I/O 操作和数据扩充有点繁重时。pytorch中是否有等价物?我在教程中没有看到这样的例子。Dataset在“数据加载和处理”教程中看到了一个类,但它看起来像标准的 python,所以我假设它不能同时运行到训练。

如果在这两个方面都有经验的人可以就该主题以及其他主题(例如使用来自 C++ 的经过训练的模型)发表意见,我会很高兴听到它。

我知道我会因为提出这种广泛的问题而在 stackoverflow 上被激怒,我希望这里没问题。

0个回答
没有发现任何回复~