这个错误通常发生在你尝试对类型为 'Float' 的张量执行按位与 (bitwise AND) 操作时,因为这种操作不被支持。错误发生在模型的前向传播方法中,具体来说是在生成 'tgt_mask' 的代码行,它组合了两种类型的掩码。

为了解决这个问题,你可以尝试将张量转换为支持按位操作的类型,比如 'Long'。你可以通过在执行操作之前对张量调用 'long()' 方法来实现这一点。

例如,将这行代码:

tgt_mask = self._generate_mask(tgt) & self._generate_tgt_subsequent_mask(tgt)

替换为:

tgt_mask = self._generate_mask(tgt).long() & self._generate_tgt_subsequent_mask(tgt).long()

这样应该会在执行按位与操作之前将两个张量都转换为 'Long' 类型,从而避免运行时错误。

解决 PyTorch 中 'bitwise_and_cpu' 不支持 'Float' 类型错误

原文地址: https://www.cveoy.top/t/topic/mKie 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录