Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用openai gym(21点)制作ai_Python_Reinforcement Learning_Openai Gym - Fatal编程技术网

Python 使用openai gym(21点)制作ai

Python 使用openai gym(21点)制作ai,python,reinforcement-learning,openai-gym,Python,Reinforcement Learning,Openai Gym,我正在使用openai健身房为21点制作AI 但是我不擅长python和gym,所以我不知道如何完成代码 我一直在尝试编写一个简单的代码来使用Q-learning制作人工智能 但我对开放式ai健身房和python还不够熟悉 我不知道如何检查状态大小(env.observation\u space.n不起作用..只有env.action\u space.n显示它的“2”) 我的代码是其他健身游戏示例的复制品(frozenlake) 帮我完成这个简单的代码,这样我就可以像DQN一样自己改进它了 im

我正在使用openai健身房为21点制作AI

但是我不擅长python和gym,所以我不知道如何完成代码

我一直在尝试编写一个简单的代码来使用Q-learning制作人工智能

但我对开放式ai健身房和python还不够熟悉

我不知道如何检查状态大小(env.observation\u space.n不起作用..只有env.action\u space.n显示它的“2”) 我的代码是其他健身游戏示例的复制品(frozenlake)

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

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)不断上升(如果我的算法有效的话)


还想知道如何使用好健身模块

我将更新此回复,因为我完全理解您的需求

  • 对于评论中的第一个问题,您可以使用
    env.observation\u space.n
    获取动作的数量,如果您使用的是最新版本的
    gym
    ,则可以使用
    env.unwrapped.get\u action\u meansions()获取动作的含义
  • 对于第三个问题,您可以使用
    env.render()
    将游戏可视化
下面是一个使用python3和最新版本的gym版本“0.10.9”(您可以通过
gym获得gym版本)渲染游戏的最小工作示例:

导入时间
进口健身房
#创建一个突破性环境
env=gym.make('SpaceInvaders-v4')
#重置它,返回起始帧
frame=env.reset()
#渲染
env.render()
完成了吗
虽然未完成,但:
#执行随机操作,返回新帧、奖励以及游戏是否结束
框架,奖励,已完成,\=env.step(env.action\u space.sample())
#渲染
env.render()
睡眠时间(0.01)
如果完成了:
环境关闭()
打破

1.我想知道环境是如何工作的。例如,我如何通过编码2获得env的信息。想问问人们我的算法是否可以作为Q-learning。3.有什么方法可以让这个游戏可视化吗?当我运行这个代码时,似乎所有的情节都没有完成(循环并不完美)修正了一些语法