复现低版本模型测试代码时遇见的兼容性问题汇总

1、 module ‘tensorflow’ has no attribute ‘xxx’

遇见这类错误,首先将tf.xxx替换为tf.compat.v1.xxx
若不能解决,再尝试下边的方法进行替换。

2、 tf.contrib.layers.xavier_initializer()的替换问题

首先,根据网上的回答,依次进行了以下两种替换:

tf.keras.initializers.glorot_normal()
tf.compat.v1.keras.initializers.glorot_normal()

但是依然存在兼容问题(module ‘keras.api._v2.keras’ has no attribute ‘initializers’),
最后改为以下格式,问题解决。

tf.compat.v1.initializers.glorot_normal()

建议三种方式都尝试一下。

3、 This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2

原因:警告tensorflow可以以更快的速度运行。
解决方法:把tensorflow的警告等级为2的警告忽略。

import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'

4、 OMP: Error #15: Initializing libiomp5, but found libiomp5md.dll already initialized.

原因:conda中存在多个环境引起的
解决方法一:在程序之前添加os.environ['KMP_DUPLICATE_LIB_OK']='TRUE'
解决方法二:删除C:\ProgramData\Anaconda3\Library\bin中的libiomp5md.dll文件(最好做个备份)

你可能感兴趣的:(tensorflow,python,人工智能,pytorch)