稳定的基线不适用于tensorflow

2024-06-01 05:21:50 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我最近又回到了机器学习领域,决定为“ConnectX”(https://www.kaggle.com/learn/intro-to-game-ai-and-reinforcement-learning)开设Kaggle课程。我试着做第4课,我用稳定的基线+张量流来制作人工智能。问题是,我似乎无法正确使用稳定的基线,因为在我尝试导入时,它会立即给我一个错误。以下是错误消息:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-13-f5986851ce81> in <module>
      1 import os
----> 2 from stable_baselines.bench import Monitor
      3 from stable_baselines.common.vec_env import DummyVecEnv
      4 
      5 # Create directory for logging training information

~\Anaconda3\lib\site-packages\stable_baselines\__init__.py in <module>
----> 1 from stable_baselines.a2c import A2C
      2 from stable_baselines.acer import ACER
      3 from stable_baselines.acktr import ACKTR
      4 from stable_baselines.deepq import DQN
      5 from stable_baselines.her import HER

~\Anaconda3\lib\site-packages\stable_baselines\a2c\__init__.py in <module>
----> 1 from stable_baselines.a2c.a2c import A2C

~\Anaconda3\lib\site-packages\stable_baselines\a2c\a2c.py in <module>
      5 import tensorflow as tf
      6 
----> 7 from stable_baselines import logger
      8 from stable_baselines.common import explained_variance, tf_util, ActorCriticRLModel, SetVerbosity, TensorboardWriter
      9 from stable_baselines.common.policies import ActorCriticPolicy, RecurrentActorCriticPolicy

~\Anaconda3\lib\site-packages\stable_baselines\logger.py in <module>
     15 from tensorflow.python.util import compat
     16 
---> 17 from stable_baselines.common.misc_util import mpi_rank_or_zero
     18 
     19 DEBUG = 10

~\Anaconda3\lib\site-packages\stable_baselines\common\__init__.py in <module>
      2 from stable_baselines.common.console_util import fmt_row, fmt_item, colorize
      3 from stable_baselines.common.dataset import Dataset
----> 4 from stable_baselines.common.math_util import discount, discount_with_boundaries, explained_variance, \
      5     explained_variance_2d, flatten_arrays, unflatten_vector
      6 from stable_baselines.common.misc_util import zipsame, set_global_seeds, boolean_flag

~\Anaconda3\lib\site-packages\stable_baselines\common\math_util.py in <module>
      1 import numpy as np
----> 2 import scipy.signal
      3 
      4 
      5 def safe_mean(arr):

~\Anaconda3\lib\site-packages\scipy\signal\__init__.py in <module>
    287 
    288 """
--> 289 from . import sigtools, windows
    290 from .waveforms import *
    291 from ._max_len_seq import max_len_seq

~\Anaconda3\lib\site-packages\scipy\signal\windows\__init__.py in <module>
     39 """
     40 
---> 41 from .windows import *
     42 
     43 __all__ = ['boxcar', 'triang', 'parzen', 'bohman', 'blackman', 'nuttall',

~\Anaconda3\lib\site-packages\scipy\signal\windows\windows.py in <module>
      5 
      6 import numpy as np
----> 7 from scipy import linalg, special, fft as sp_fft
      8 
      9 __all__ = ['boxcar', 'triang', 'parzen', 'bohman', 'blackman', 'nuttall',

~\Anaconda3\lib\site-packages\scipy\special\__init__.py in <module>
    631 from .sf_error import SpecialFunctionWarning, SpecialFunctionError
    632 
--> 633 from . import _ufuncs
    634 from ._ufuncs import *
    635 

ImportError: DLL load failed: The specified module could not be found.

看起来scipy有点问题,但我不知道我能做些什么来修复它。即使运行import stable_baselines,也会发生此错误。以下是我运行以创建虚拟环境的代码(顺便说一句,这是在PowerShell b/c中,这是Jupyter实验室提供给我的):

python -m venv myenv
.\myenv\Scripts\Activate.ps1
pip install stable-baselines

注意:我不知道这是否有任何意义,但是当我安装stable-baselines时,出现了一个错误:ERROR: gym 0.17.2 has requirement cloudpickle<1.4.0,>=1.2.0, but you'll have cloudpickle 1.5.0 which is incompatible.

PS:我发现了相同的问题here,但我不知道他们是如何解决的。答案只是说“我使用了anaconda”,但anaconda中没有stable-baselines包!我试着从anaconda安装tensorflow,从pip安装稳定的基线,但仍然出现同样的错误

上次编辑:看起来此问题与.导入有关,并且仅在jupyter notebook中有效(与tensorflow无关-它在Python CLI中工作正常)。我在关于{}{a3}的新问题中解释了这一点

~z~阿尤什


Tags: infrompyimportinitlibpackagesutil
2条回答

稳定基线站点声称它们还不支持tf2.X。所以这可能是你的问题

试试下面的方法

pip install tensorflow==1.14.0
pip install stable-baselines[mpi]==2.10.0

直到今天(2020年9月4日),他们似乎都在为我工作

我知道这可能有点晚了,但我现在发现了你的问题,并决定尽我所能回答它。祝你好运

如果您专门寻找TF2版本的稳定基线,请检查以下(实验性)分支之一:

或者,尝试稳定基线3(目前为beta版),它基于PyTorch而不是Tensorflow,旨在取代当前基于TF1的SB2版本:

相关问题 更多 >