首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用openai健身房(21点)制作ai

使用openai健身房(21点)制作ai
EN

Stack Overflow用户
提问于 2019-01-12 14:37:18
回答 1查看 1.7K关注 0票数 2

我正在使用openai健身房来为21点制作人工智能。

但是我不擅长python和健身房,所以我不知道如何完成代码。

我一直在尝试写一个简单的代码,用Q学习来制作人工智能。

但我对开放式健身馆和蟒蛇还不够熟悉。

我不知道如何检查状态大小(env.observation_space.n不起作用)。只有env.action_space.n向我展示了它的'2'),我的代码有点像其他健身房游戏的例子(结冰)

帮助我完成这个简单的代码,这样我就可以像DQN一样自己来改进它。

代码语言:javascript
复制
import gym
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np

env=gym.make('Blackjack-v0')

Q=np.zeros([400,env.action_space.n])

num_episodes=10000
dis=0.99
rList=[]

for i in range(num_episodes):
    state = env.reset()
    rALL = 0
    done = False

    while not done: 
        action=np.argmax(Q[state,:]+np.random.randn(1
        ,env.action_space.n)/(i+1))


        new_state,reward,done,_=env.step(action)

        Q[state, action] = reward + dis * np.max(Q[new_state, :])
        print(rList)
        rALL += reward
        state = new_state

    rList.append(rALL)\


print(Q)

我想看到奖励名单(RList)继续上升(如果我的算法有效)

同时也想知道如何更好地使用健身模块。

EN

回答 1

Stack Overflow用户

发布于 2019-01-12 15:10:32

,我将更新这个响应,因为我理解您想要的是精确的

  • 对于注释中的第一个问题,如果使用最新版本的env.observation_space.n,您可以通过使用env.unwrapped.get_action_meanings()获取操作的数量以及它们的含义。
  • 对于第三个问题,您可以使用env.render()来可视化游戏。

下面是一个使用python3和最新版本的健身房版本'0.10.9‘呈现游戏的最小工作示例(您可以通过gym.__version__获得您的健身版本):

代码语言:javascript
复制
import time
import gym

# Create a breakout environment
env = gym.make('SpaceInvaders-v4')

# Reset it, returns the starting frame
frame = env.reset()

# Render
env.render()

is_done = False

while not is_done:
    # Perform a random action, returns the new frame, reward and whether the game is over
    frame, reward, is_done, _ = env.step(env.action_space.sample())
    # Render
    env.render()

    time.sleep(0.01)
    if is_done:
        env.close()
        break
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54160590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档