簡體   English   中英

Jupyter python 內核死了 - OpenAI

[英]Jupyter python kernel dies - OpenAI

我是強化學習的新手,我正在嘗試使用 OpenAI Gym 環境。
首先,我通過這個命令安裝了gym: !pip install gym in jupyter
再次運行以確保它已完全安裝后,我得到了以下輸出:

Requirement already satisfied: gym in c:\program files\anaconda3\lib\site-packages (0.10.5)
Requirement already satisfied: pyglet>=1.2.0 in c:\program files\anaconda3\lib\site-packages (from gym) (1.3.2)
Requirement already satisfied: six in c:\program files\anaconda3\lib\site-packages (from gym) (1.11.0)
Requirement already satisfied: requests>=2.0 in c:\program files\anaconda3\lib\site-packages (from gym) (2.19.1)
Requirement already satisfied: numpy>=1.10.4 in c:\program files\anaconda3\lib\site-packages (from gym) (1.13.3)
Requirement already satisfied: future in c:\program files\anaconda3\lib\site-packages (from pyglet>=1.2.0->gym) (0.16.0)
Requirement already satisfied: urllib3=1.21.1 in c:\program files\anaconda3\lib\site-packages (from requests>=2.0->gym) (1.23)
Requirement already satisfied: certifi>=2017.4.17 in c:\program files\anaconda3\lib\site-packages (from requests>=2.0->gym) (2018.4.16)
Requirement already satisfied: chardet=3.0.2 in c:\program files\anaconda3\lib\site-packages (from requests>=2.0->gym) (3.0.4)
Requirement already satisfied: idna=2.5 in c:\program files\anaconda3\lib\site-packages (from requests>=2.0->gym) (2.7)



正如 OpenAI Gym Doc 頁面所述,我嘗試了這段代碼以確保一切正常:

import gym
env = gym.make('CartPole-v0')
for i_episode in range(20):
    observation = env.reset() #The process gets started by calling reset(), which returns an initial observation. 
    for t in range(100):
        env.render()
        print(observation)
        action = env.action_space.sample()
        observation, reward, done, info = env.step(action)
        if done:
            print("Episode finished after {} timesteps".format(t+1))
            break


運行此代碼后,將打開一個新窗口,所有內容與文檔頁面上提供的視頻完全相同。
但問題是當代理完成時(所有劇集都運行),內核死掉並再次重新啟動。

我發現在某些特定版本中, gym.make(close=true)可以解決問題。 但不是在最新版本的 anaconda 和 Gym 中。 另一個解決方案是使用以下代碼: env = gym.make('name') env.close() 但問題是,這個close()函數會刪除env對象,所以每次我們創建環境時。

問候

我不知道如何解決這個問題,但我在gym-retro 中使用了不同的代碼,效果很好。

env = retro.make(game="StreetFighterIISpecialChampionEdition-Genesis", state="ChunLiVsBlanka.1star")
env = wrapper(env)
model = PPO2.load("D:/Python/Projects/Hakisa/rl_model_1000000_steps")
obs = env.reset()
total_reward = []
steps = 0
end = False

while end != True and steps < 100:
    env.render()
    action, state = model.predict(obs)
    obs, reward, end, info = env.step(action)
    steps += 1
    total_reward.append(reward)
    time.sleep(0.05)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM