导入错误:无法从 Mac M1 的“tensorflow.keras.models”导入名称“model_from_config”

问题描述 投票:0回答:2

尝试在 Mac M1 上运行带有 RL 代理的

gym
环境。

import gym 
import numpy as np

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.optimizers import Adam

from rl.agents import DQNAgent 

运行此程序时,最后一行出现错误:

ImportError: cannot import name 'model_from_config' from 'tensorflow.keras.models' (/Users/username/miniforge3/envs/rl_gym/lib/python3.12/site-packages/keras/_tf_keras/keras/models/__init__.py). Did you mean: 'model_from_json'?

这是

Sonoma 14.4.1
。大多数其他讨论(例如这个link)建议重新安装tensorflow和其他软件包。我尝试过,但没有成功。错误仍然存在。这是在 conda 环境中,我有
keras-3.2.1
tensorflow-2.16.1
keras-rl2-1.0.5
。我这里错了什么?

macos tensorflow tf.keras keras-rl
2个回答
0
投票

TensorFlow 2.16 默认使用 Keras 3,其 API 与 Keras 2 略有不同。请参阅 TensorFlow 2.16 的发行说明

Keras 3 将是 TensorFlow 2.16 及以上版本的默认 Keras 版本。 您可能需要更新脚本才能使用 Keras 3。请参阅 Keras 3 的新 Keras 文档 (https://keras.io/keras_3)。喀拉斯 2 将继续与 TensorFlow 一起作为 tf_keras 发布。到 继续将 Keras 2 与 TensorFlow 2.16+ 结合使用:

因此,tf.keras API 也发生了变化,部分功能不再可用。如果您比较 TF 2.15 中的 tf.keras.models 模块的文档 和 TF 2.16 中的 ,您会发现一些序列化函数已被删除。 解决方案是将您的 TensorFlow 版本降级到 2.15,这是与您正在使用的

keras-rl

库兼容的最新版本。

    


0
投票
model_from_config

。 降级到任何旧版本的 TensorFlow,它都会正常工作

    

© www.soinside.com 2019 - 2024. All rights reserved.