gym自建环境实例

注意事项
网络的输入

__init__函数的self.state决定model(网络)的输入shape,如果self.state的shape是(1,32),那么网络的输入也应该是一样的。

关于策略

step函数根据输入的动作会返回不同的reward,策略不同后面动作出现的次数就会不同,如action 0 对应的 reward=0,action 1 对应的reward=-10,action 2对应的reward=-5,则训练的结果会使得action=0的动作变多。所以不同的动作需要合理的设置reward。
虽然不能显示画面但是能够正常的训练
运行环境:
python 3.7.9
gym 0.19.0
pygame 2.1.2

from rl.memory import SequentialMemory
from rl.policy import BoltzmannQPolicy
from rl.agents.dqn import DQNAgent
from keras.layers import Dense,Flatten
import keras
#from keras.optimizers import Adam
import tensorflow as tf
import numpy as np
import random
import pygame
import gym


class Env(gym.Env):
    def __init__(self):
        self.action_space = gym.spaces.Discrete(4)
        self.observation_space = gym.spaces.MultiDiscrete([39, 27])
        self.screen = pygame.display.set_mode((800, 600))
        self.PlayerX = 0
        self.PlayerY = 0
        self.FoodX = 0
        self.FoodY = 0
        self.state = [self.FoodX - self.PlayerX + 19, self.FoodY - self.PlayerY + 14]
        self.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值