解决 PyTorch 中 'bitwise_and_cpu' 不支持 'Float' 类型错误
这个错误通常发生在你尝试对类型为 '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' 类型,从而避免运行时错误。
原文地址: https://www.cveoy.top/t/topic/mKie 著作权归作者所有。请勿转载和采集!