关于被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
许可协议:
CC BY 4.0