使用tf代理[reverb]导入以在tensorflow中构建DQN的问题



我正在尝试设置我的环境,以便使用TF Agent训练深度Q网络。然而,我遇到了一堆导入错误,似乎无法解决。我在这里学习的教程需要以下软件包:

tf-agents[reverb]
pyvirtualdisplay
imageio==2.4.0
pyglet

然后他们发表了以下重要声明:

from __future__ import absolute_import, division, print_function
import base64
import imageio
import IPython
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import PIL.Image
import pyvirtualdisplay
import reverb
import tensorflow as tf
from tf_agents.agents.dqn import dqn_agent
from tf_agents.drivers import py_driver
from tf_agents.environments import suite_gym
from tf_agents.environments import tf_py_environment
from tf_agents.eval import metric_utils
from tf_agents.metrics import tf_metrics
from tf_agents.networks import sequential
from tf_agents.policies import py_tf_eager_policy
from tf_agents.policies import random_tf_policy
from tf_agents.replay_buffers import reverb_replay_buffer
from tf_agents.replay_buffers import reverb_utils
from tf_agents.trajectories import trajectory
from tf_agents.specs import tensor_spec
from tf_agents.utils import common

我在Windows操作系统上使用python 3.9.6在虚拟环境中工作。在安装了上面的包(使用pip-install(并运行了上面的代码之后,我缺少了这些模块(ModuleNotFound(:matplotlib、reverb和tensorflow。我为matplotlib运行了另一个pip安装,它修复了这个问题。然而,混响和tensorflow并不简单。我为混响(pip install reverb(运行了一个单独的pip安装,但现在我在import reverb上得到了以下错误:

Cell In [3], line 11
import reverb
File c:...envlibsite-packagesreverb.py:64
raise TypeError, 'Regexp cannot be negated'
^
SyntaxError: invalid syntax

同样,当我运行一个单独的pip install tensorflow时,我遇到了:

WARNING:tensorflow:Please fix your imports. Module tensorflow.python.training.tracking.base has been moved to tensorflow.python.trackable.base. The old module will be deleted in version 2.11.
(traceback)
ImportError: cannot import name 'network' from 'tensorflow.python.keras.engine' (c:...envlibsite-packagestensorflowpythonkerasengine__init__.py)

我猜这个导入错误是因为tf代理在中安装了自己版本的tensorflow/env/,但我不明白为什么python不能导入它们。有人对如何解决这些依赖性问题有什么建议吗?这样我就可以运行笔记本了?有没有我应该省略的进口,或者换一种方式?我的pip安装有问题吗?欢迎提出任何建议。

Reverb在Windows上不工作(仅限Linux(https://github.com/deepmind/reverb

您需要使用不同的重播缓冲区。tf-agents包含用于其自己的重放缓冲器的tf-agents.replay_buffers类。

相关内容

  • 没有找到相关文章

最新更新