我正在研究各种样式传输模型,我注意到它们的分辨率都有限(例如,在 Pixel 3 上运行时,我不能超过 1,024x1,024,否则 OOM(。
我注意到一些应用程序(例如这个应用程序(似乎正在为高达 ~10MP 的图像进行样式转换,这些应用程序还显示进度条,我想这意味着它们不只是为整个图像调用单个 tensorflow "run" 方法,否则他们不会知道处理了多少。
我猜他们正在使用某种平铺,但天真地将图像拆分为 256x256 会产生不一致的样式(不仅仅是在边框上(。
由于这似乎是一个明显的问题,我试图找到任何关于此的出版物,但我找不到任何出版物。我错过了什么吗?
谢谢!
我猜人们将模型分成多个模型(对于 VGG,手动很容易做到,例如通过层(,然后使用 Keras 函数(或基准测试(估计每一步所需的相对时间model_summary从而指导进度条。这种分离可能还可以节省内存,因为 tensorflow lite 可能不够聪明,无法在不需要时重用存储较低层的中间激活的内存。