当前位置: 首页 > news >正文

企业网站的建设要注意什么网站设计制作教程

企业网站的建设要注意什么,网站设计制作教程,大学网站建设工作总结,asp如何做网站我们为什么要创建一个gym的环境呢?因为需要,哈哈哈,这是一句废话,但是也是一句真话。因为我不想自己写强化学习的算法了,我想用一些现成的框架,这些框架训练的都是gym的游戏,那我把我自己想要训…

我们为什么要创建一个gym的环境呢?因为需要,哈哈哈,这是一句废话,但是也是一句真话。因为我不想自己写强化学习的算法了,我想用一些现成的框架,这些框架训练的都是gym的游戏,那我把我自己想要训练的东西改成一个gym的框架,不就可以直接用强化学习的框架来训练了嘛。就是这么一个简单的需求,我们开始吧。

顺便说一下,我这里的gym是比较老的版本,新版本的gym有一些不同,新版本的gym在step函数中返回的是一个五元组,reset返回的是一个二元组,这都与旧版本不同,但是这些强化学习的框架还没有改过来,所以我们也就使用了旧版本函数,不过这也不是什么大问题。

需要实现的函数

__init__()

构造函数中我们需要定义两个变量self.action_spaceself.observation_space, 为了覆盖父类的变量,这两个变量的名字是固定的。它们定义了强化学习中的动作空间和状态空间的类型和大小,如果是离散的,则使用Discrete创建,参数为离散量的个数,比如CartPole中,CartPole中的 self.action_space实际就是用Discrete(2)创建的,如果是连续的,则使用Box创建,比如CartPole这个例子中,状态有四维,而且状态空间的每个维度都有定义域,那么就可以如下创建:

self.action_space = Discrete(2)high = np.array([        self.x_threshold * 2,np.finfo(np.float32).max,               # finfo可以显示响应类型的机器限制,这里为浮点数最大值 self.theta_threshold_radians * 2,np.finfo(np.float32).max,])
self.observation_space = spaces.Box(-high, high, dtype=np.float32)

reset()

调用这个方法可以重置模拟器环境,并返回重启后的模拟器中agent的初始state

step()

调用该方法以实现agent与simulator进行一次交互。我们的奖励机制也需要写在这个函数中,所以该函数非常重要。该函数的返回值必须是四元组,包含:

state 状态,也就是状态空间

reward 奖励,交互后agent得到的奖励

done 结束,true表示已经结束,False表示没有结束

info 信息,是一个字典,用来debug,一般用不到

render()

用来显示画面,一般pass,如果有能力写动画的话也可以

seed()

用来设置随机种子,一般pass,如果程序中有一些随机性的行为,可以在这里设置随机种子。

定义一个简单的环境

我们定义我们的动作空间为两个值,范围均为 [-1,1],状态空间或者说观测空间为离散的5个变量,奖励为两个动作的和,状态转移均为从0到1234,状态到4就结束。看一下代码

import gym
from gym import spaces
from stable_baselines3 import A2C
import numpy as npclass MySim(gym.Env):def __init__(self):low = np.array([-1,-1],dtype=np.float32)high = np.array([1,1],dtype=np.float32)self.action_space = spaces.Box(low,high,dtype=np.float32)self.observation_space = spaces.Discrete(5)self.state = 0def step(self,action):self.state += 1reward = action[0] + action[1] # 这里的reward的类型是np,float32,不是python内建的floatdone = Falseif self.state == 4:done = Trueinfo = {}return self.state, float(reward), done, infodef reset(self):self.state = 0return 0def render(self,mode="human"):passdef seed():pass

可以用一些工具来检测这个环境是否正确,比如 stable_baselines3 下的 check_env,就可以帮助我们进行环境的检测

from stable_baselines3.common.env_checker import check_env 
if __name__ == '__main__':  env = MySim()check_env(env)

如果没有任何报错就说明环境正常,可以用这个环境来训练一些代码了,我们用了A2C算法

if __name__ == '__main__':env = MySim()check_env(env)model = A2C(policy="MlpPolicy", env=env)model.learn(total_timesteps=10000)obs = env.reset()# 验证一次for _ in range(10):action, state = model.predict(observation=obs)print(action[0] + action[1])obs, reward, done, info = env.step(action)if done:break

输出为

2.0
2.0
2.0
2.0

可以预见的输出正确。

http://www.yidumall.com/news/87924.html

相关文章:

  • 中科院网站做的好的院所怎么宣传网站
  • 做电影网站会不会侵权最近实时热点事件
  • 网站流量统计模板搜索引擎营销简称seo
  • wordpress 采集公众号成品网站seo
  • 宝塔网站搭建教程友情链接教程
  • 无障碍网站建设有实力的网站排名优化软件
  • 怎么做自己的发卡网站6搜索引擎优化的简称是
  • 专业网站建站公司360免费建站教程
  • 嘉兴高端网站建设有限公司在线seo工具
  • 没网站怎么做cpaseo优化软件购买
  • 怎么用手机做网站教程2022年最火的电商平台
  • 网络软文广告seo的搜索排名影响因素有哪些
  • 网站 一般 用什么空间网站建设平台有哪些
  • 海洋馆的网站怎么做网站流量排行
  • 成都网站建设 培训学校西安网站关键词优化推荐
  • 网站没有备案会怎样广州网站优化方案
  • 邢台贴吧今日消息seo需要什么技术
  • 新手学做网站vs游戏推广平台哪个好
  • 展示设计图片关键词推广优化
  • 网站不备案能用吗seo优化的常用手法
  • 如何做高端网站建设seo优化费用
  • 支持货到付款的购物网站seo查询网站
  • 网站开发与应用总结青岛做网站推广公司
  • 新潮远网站建设网络销售平台
  • 网站托管价格电商网页制作教程
  • 做网站用哪个开发工具好西安网络优化大的公司
  • 2018年做视频网站企业策划推广公司
  • 惠州学院网站建设百度知道合伙人答题兼职入口
  • 苏州网站建设自助建站收费高级seo优化招聘
  • 太原手机网站设计我想接app纯注册推广单