TR位置编码问题

最近在看DETR源码发现里面的TR模块是只对QK施加位置编码(左),而d2l中TR的实现是QKV都进行了位置编码(右),
请问这两种编码方式有什么区别,哪个更加合理?