在PyCharm中使用TensorFlow遇弃用警告,求解决办法
解决PyCharm中TensorFlow的retry弃用警告问题
嘿,这个警告我太熟了!本质是你代码里依赖的tensorflow.contrib.learn模块里的retry函数已经被官方标记为弃用,接下来给你几个靠谱的解决办法,按推荐程度排序:
1. 替换为官方推荐的第三方retry库
这是最直接且符合官方建议的方案:
- 先安装第三方库:
pip install retry - 替换代码中的导入语句:
把原来的
改成from tensorflow.contrib.learn.python.learn.datasets.base import retryfrom retry import retry - 原有的装饰器用法基本兼容,比如你之前用
@retry()或者带参数的@retry(tries=3, delay=1),都可以直接沿用,参数逻辑和旧版本一致。
2. 自己实现轻量重试逻辑
如果不想引入第三方依赖,可以手动写一个简单的重试装饰器:
import time from functools import wraps def custom_retry(tries=3, delay=1): """自定义重试装饰器,默认重试3次,每次间隔1秒""" def decorator(func): @wraps(func) def wrapper(*args, **kwargs): attempts = 0 while attempts < tries: try: return func(*args, **kwargs) except Exception as e: attempts += 1 if attempts == tries: # 最后一次失败则抛出原异常 raise e time.sleep(delay) return wrapper return decorator
然后把代码里的@retry替换成@custom_retry()即可,还能根据自己的需求调整重试次数、间隔时间等参数。
3. 迁移到TensorFlow稳定API(根源解决)
tensorflow.contrib模块本身就是实验性质的,很多内容会被逐步移除。如果你的代码依赖了contrib.learn,可以考虑迁移到TensorFlow官方维护的稳定API:
- 比如用
tf.keras替代原有的高阶训练逻辑 - 或者使用
tf.estimatorAPI,它是contrib.learn的替代方案,功能更稳定且长期维护
这样不仅能解决这个警告,还能避免未来其他contrib模块弃用带来的问题。
临时应急:屏蔽警告(不推荐)
如果只是暂时不想看到警告(不建议长期这么做,会错过重要的更新提示),可以在代码开头添加以下代码:
import tensorflow as tf # 屏蔽TensorFlow的弃用警告 tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)
或者用Python原生的警告控制:
import warnings warnings.filterwarnings("ignore", category=DeprecationWarning)
内容的提问来源于stack exchange,提问作者Vrai
相关产品推荐
相关产品推荐

