文章

关于被TPU xla图缓存做局

问题概要:

白嫖鼠鼠在快乐的白嫖kaggle 的 超强TPU v5e-8的时候,历尽千辛万苦把模型从torch-cuda 迁移到tensorflow中来。

然后却频繁报错,报错中提到一个我已经删除了的损失函数类,CTCLoss,这个的实现最开始没用库。写的有问题,后来删掉了,却在报错中发现了报错位置在这里。

查询资料可以知道:

tensorflow会将xla缓存图默认存放在磁盘中,猜测是磁盘缓存造成影响,同时我用的环境是kaggle上很老的一个环境,很可能这个环境多次分配给了我一个人,而没有重新构建过。导致硬盘的缓存一直都在,哪怕重启。但是我觉得tensorflow框架应该不至于连缓存命中机制都能写错。。。。。

解决方式:

pip install tf-seq2seq-losses

这里别人重写的版本,替换掉tensorflow 的 ctc_loss即可。问题仅出现在kaggle环境中,hhhhh。

详细可从下方链接了解。

Google - American Sign Language Fingerspelling Recognition | Kaggle

CTC Loss errors on TPU · Issue #61297 · tensorflow/tensorflow

tensorflow - Compilation failure: Detected unsupported operations when trying to compile graph get_loss_cond_1_true_88089_rewritten[] - Stack Overflow

许可协议:  CC BY 4.0