Системная информация
Платформа ОС и распространение (например, Linux Ubuntu 16.04): Ubuntu 18.04.
Ray установлен из (исходный или двоичный): двоичный
Версия Ray: 0.7.3
Версия Python: 3.7
Версия Tensorflow: tensorflow-gpu 2.0.0rc0
Точная команда для воспроизведения:
# Importing packages
from time import time
import gym
import tensorflow as tf
import ray
# Creating our initial model
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, input_shape=(24,), activation='relu'),
tf.keras.layers.Dense(4, activation='softmax')
])
# Setting parameters
episodes = 64
env_name = 'BipedalWalker-v2'
# Initializing ray
ray.init(num_cpus=8, num_gpus=1)
# Creating our ray function
@ray.remote
def play(weights):
actor = tf.keras.Sequential([
tf.keras.layers.Dense(64, input_shape=(24,), activation='relu'),
tf.keras.layers.Dense(4, activation='softmax')
])
actor = actor.set_weights(weights)
env = gym.make('BipedalWalker-v2').env
env._max_episode_steps=1e20
obs = env.reset()
for _ in range(1200):
action = actor.predict_classes(obs).flatten()[0]
action = env.action_space.sample()
obs, rt, done, info = env.step(action)
return rt
# Testing ray
start = time()
weights = model.get_weights()
weights = ray.put(weights)
results = ray.get([play.remote(weights) for i in range(episodes)])
ray.shutdown()
print('Ray done after:',time()-start)
Опишите проблему
Я пытаюсь использовать Ray для распараллеливания развертываний тренажерных залов OpenAI с помощью актора Keras Tensorflow 2.0-gpu. Каждый раз, когда я пытаюсь создать экземпляр модели Keras с помощью @ ray.remote, возникает ошибка достижения глубины рекурсии. Я следую документации, изложенной Рэем, где предлагается передавать веса вместо моделей. Я не уверен, что я здесь делаю не так, есть мысли?
Исходный код / журналы
Файл "/home/jacob/anaconda3/envs/tf-2.0-gpu/lib/python3.7/site-packages/tensorflow/init.py", строка 50, в getattr module = self._load ()
Файл "/home/jacob/anaconda3/envs/tf-2.0-gpu/lib/python3.7/site-packages/tensorflow/init.py", строка 44, в _load module = _importlib.import_module (self.name)
RecursionError: превышена максимальная глубина рекурсии
tensorflow-gpu
. Я воспроизвел это с помощью всегоtensorflow
. - person Robert Nishihara   schedule 02.09.2019