Python 使用openai gym(21点)制作ai
我正在使用openai健身房为21点制作AI 但是我不擅长python和gym,所以我不知道如何完成代码 我一直在尝试编写一个简单的代码来使用Q-learning制作人工智能 但我对开放式ai健身房和python还不够熟悉 我不知道如何检查状态大小(env.observation\u space.n不起作用..只有env.action\u space.n显示它的“2”) 我的代码是其他健身游戏示例的复制品(frozenlake) 帮我完成这个简单的代码,这样我就可以像DQN一样自己改进它了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
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()
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.有什么方法可以让这个游戏可视化吗?当我运行这个代码时,似乎所有的情节都没有完成(循环并不完美)修正了一些语法