Stable Baselines не работает с tenorflow
Поэтому я недавно вернулся к машинному обучению и решил начать курс Kaggle для "ConnectX" ( https://www.kaggle.com/learn/intro-to-game-ai-and-reinforcement-learning). Я пытаюсь провести урок 4, в котором я использую stable-baselines + Tensorflow для создания ИИ. Проблема в том, что я не могу правильно использовать стабильные базовые линии, так как это сразу же выдает ошибку, когда я пытаюсь импортировать ее. Вот сообщение об ошибке:
---------------------------------------------------------------------------
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 Lab):
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: я нашел тот же вопрос здесь, но я понятия не имею, как они неподвижные его. В ответе просто написано "Я использовал анаконду", но нетstable-baselines
пакет в анаконду! Я попытался установить tenorflow из anaconda и stable-baselines из pip, но он все равно дал ту же ошибку.
ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ: похоже, что эта проблема.
импорт и действует только в jupyter notebook
(не имеет ничего общего с tensorflow
- отлично работает в Python CLI). Я объяснил это в своем новом вопросе оopencv
здесь.
~ Аюш
3 ответа
Сайт стабильных базовых версий утверждает, что еще не поддерживает tf2.X. Так что это может быть твоя проблема
Попробуйте следующее,
pip install tensorflow==1.14.0
pip install stable-baselines[mpi]==2.10.0
Кажется, они работают для меня вместе по сей день (4 сентября 2020 г.).
Я знаю, что это может быть немного поздно, но я нашел ваш вопрос сейчас и решил ответить на него как можно лучше. Удачи!
Если вы ищете специально для TF2 версию Stable Baselines, проверьте одну из этих (экспериментальных) вилок:
- https://github.com/sophiagu/stable-baselines-tf2
- https://github.com/Stable-Baselines-Team/stable-baselines-tf2
В качестве альтернативы попробуйте Stable Baselines 3 (в настоящее время находится в стадии бета-тестирования), который основан на PyTorch вместо Tensorflow и предназначен для замены текущей версии SB2 на основе TF1:
import stable_baselines
не работает.
import stable_baselines3
работает.
Для установки Stable-baselines вы можете использовать
-
conda install -c conda-forge stable-baselines3
если вы используете анаконду -
pip install stable-baselines
если вы хотите установить с помощью PIP