关于版本不匹配的处理
嗯,报错了,这种版本不匹配的问题就是很恶心,。。。

或者你报错:
回到vscode终端。
先把tensorflow的相关包清理干净
python
pip uninstall tensorflow tensorflow-estimator tensorboard keras -y
重装tensorflow和keras,要严格按照这个版本安装:
python
pip install tensorflow==2.10.0 keras-rl2==1.0.5
进到你的keras默认目录,维度在这里"C:\Users\HP\miniconda3\envs\brain\Lib\site-packages\rl"
进入文件夹,要修改两个文件,一个是callbacks.py

对于callbacks.py文件:
-
找到 第 8 行 左右的代码:python
1from tensorflow.keras import __version__ as KERAS_VERSION -
将其删除 ,并替换为下面这行代码:python
1import tensorflow as tf; KERAS_VERSION = tf.__version__
头部如下:
python
import warnings
import timeit
import json
from tempfile import mkdtemp
import numpy as np
import tensorflow as tf
from tensorflow.keras import __version__ as KERAS_VERSION
from tensorflow.python.keras.callbacks import Callback as KerasCallback, CallbackList as KerasCallbackList
from tensorflow.python.keras.utils.generic_utils import Progbar
再打开utils.py文件:
直接复制下面内容覆盖掉前面两个clone_函数。
python
import numpy as np
from tensorflow.keras.models import model_from_config, Sequential, Model, model_from_config
import tensorflow.keras.optimizers as optimizers
import tensorflow.keras.backend as K
import tensorflow as tf
def clone_model(model, custom_objects={}):
# Requires Keras 1.0.7 since get_config has breaking changes.
config = {
'class_name': model.__class__.__name__,
'config': model.get_config(),
}
clone = model_from_config(config, custom_objects=custom_objects)
clone.set_weights(model.get_weights())
return clone
def clone_optimizer(optimizer):
if type(optimizer) is str:
print(optimizer)
return optimizers.get(optimizer)
# Requires Keras 1.0.7 since get_config has breaking changes.
params = {k: v for k, v in optimizer.get_config().items()}
config = {
'class_name': optimizer.__class__.__name__,
'config': params,
}
if hasattr(optimizers, 'optimizer_from_config'):
# COMPATIBILITY: Keras < 2.0
clone = optimizers.optimizer_from_config(config)
else:
clone = optimizers.deserialize(config)
return clone
然后关闭jupyter重启,
噫,我好了!
