【发布时间】:2019-01-13 04:56:12
【问题描述】:
我正在使用 openai gym 为二十一点制作 AI。
但我不擅长python和gym,所以不知道如何完成代码。
我一直在尝试编写一个简单的代码来使用 Q-learning 制作 AI。
但是我对open ai gym和python还不够熟悉。
我不知道如何检查状态的大小(env.observation_space.n 不起作用.. 只有 env.action_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)不断上升(如果我的算法有效)
也想知道如何使用gym模块。
【问题讨论】:
-
1.我想知道环境是如何工作的。就像我如何通过编码获得 env 的信息 2.想问人们我的算法是否可以作为 Q-learning。 3.有什么方法可以让这个游戏形象化吗?
-
当我运行这段代码时,似乎所有的情节都没有完成(循环不完美)
-
修正一些语法
标签: python reinforcement-learning openai-gym