首先看我的报错
Traceback (most recent call last):
File "/home/xaishu/桌面/dev_xiashu/cll_ocr/tools/infer/predict_system.py", line 234, in <module>
main(args)
File "/home/xaishu/桌面/dev_xiashu/cll_ocr/tools/infer/predict_system.py", line 137, in main
text_sys = TextSystem(args)
File "/home/xaishu/桌面/dev_xiashu/cll_ocr/tools/infer/predict_system.py", line 46, in __init__
self.text_detector = predict_det.TextDetector(args)
File "/home/xaishu/桌面/dev_xiashu/cll_ocr/tools/infer/predict_det.py", line 136, in __init__
self.predictor, self.input_tensor, self.output_tensors, self.config = utility.create_predictor(
File "/home/xaishu/桌面/dev_xiashu/cll_ocr/tools/infer/utility.py", line 213, in create_predictor
gpu_id = get_infer_gpuid()
File "/home/xaishu/桌面/dev_xiashu/cll_ocr/tools/infer/utility.py", line 309, in get_infer_gpuid
if not paddle.fluid.core.is_compiled_with_rocm():
AttributeError: module 'paddle' has no attribute 'fluid'
当我在测试训练完的ocr识别模型的时候,出现了AttributeError: module 'paddle' has no attribute 'fluid'这个报错。在网上搜索的时候发现这个错误是由于在代码中使用了过时的 PaddlePaddle API。根据错误信息,你使用的是 paddle.fluid.core.is_compiled_with_rocm()
这个方法,但是在最新版本的 PaddlePaddle 中已经不再使用 fluid
这个模块。要解决这个问题,需要更新我所使用的 PaddlePaddle 版本。但是我太懒了,感觉重装会有点麻烦,有的包重新装可能不兼容。
所以就又继续查资料,根据我所了解的情况,PaddlePaddle在更新到2.0版本后进行了一些重大的变化。在旧版本的PaddlePaddle中,确实存在名为fluid
的模块,但在新版本中,这个模块已被改名为paddle
。而我使用的是PaddlePaddle的2.6的版本,则应该使用import paddle
而不是import paddle.fluid
来导入PaddlePaddle的模块。
于是我把之前的
if not paddle.fluid.core.is_compiled_with_rocm():
改成了
if not paddle.is_compiled_with_rocm():
在修改完之后,我的代码就可以运行了。至于有没有带来别的冲突,目前还没有发现。还请大佬们能够指出意见。