Paddle Multimodal Integration and eXploration, supporting mainstream multi-modal tasks, including end-to-end large-scale multi-modal pretrain models and diffusion model toolbox. Equipped with high performance and flexibility.
Apache License 2.0
354
stars
135
forks
source link
Use tensor in `window_reverse` to avoid precision issue #617
在
window_reverse
里将window_size
转换为 Tensor,windows.shape[0]
、H
、W
在动转静下,因为是动态 shape,所以都是 Tensor,而window_size
是 scalar,会触发 scale OP,x / n
会转为scale(x, 1/n)
,这会导致精度问题,进而导致计算结果出错一个简单的复现样例:
暂时避免触发 scale OP,将
window_size
转为 Tensor 以触发elementwise_div
,未来可以考虑加一个scale_div
OP,让x / n
转为scale_div(x, n)
以避免精度问题(等之后 @gouzil 有空试试?)该问题一直存在,只是之前的类型提升是向左 cast 隐藏了这点而已,3.0-beta 改了类型提升机制暴露了这点
另外还修改了下 predict 脚本里因为类型提升机制修改挂掉的问题,加了手动 cast