DeepMind-开源-Spriteworld灵活可配置的强化学习环境

Spriteworld是一个基于python的RL环境,由一个可以自由移动的简单形状的二维竞技场组成。该环境是为文章“COBRA:基于数据有效模型的RL通过无监督对象发现和好奇心驱动的探索”(Watters等,2019)中介绍的COBRA代理开发的。环境的动机是为程序生成多对象场景提供尽可能多的灵活性,同时保留尽可能简单的界面。 Spriteworld精灵有各种形状,可以在位置,大小,颜色,角度和速度上不断变化。环境有遮挡但没有物理,所以默认情况下sprite会相互传递,但不会以任何方式碰撞或交互。可以通过动作空间引入交互,动作空间可以每个时间步更新所有精灵。例如,DiscreteEmbodied动作空间(请参阅spriteworld/action_spaces.py参考资料)实现了一种基本的物理形式,其中一个代理的身体精灵可以粘附并携带精灵。 有各种各样的动作空间,其中一些是连续的(如触摸屏),其他动作空间是离散的(就像一个采用不连续步骤的具体代理)。 GitHub地址:https://github.com/deepmind/s...

August 20, 2019 · 1 min · jiezi

解决前端开发环境中的的跨域问题

一、为什么会有跨越问题是客户端浏览器同源策略导致的,就是浏览器不允许不同源的站点相互访问。试想一下要是没有这个,那站点里的安全信息如cookie,账号/密码等是不是很容易被其它站点获取。二、解决思路知道是客户端浏览器为了安全使用同源策略导致的,而服务端是没有这个限制的,那我们就只能通过服务端进行跨域了。不管是jsop,core,还是代理的方式,都是需要服务配合的。哈哈,这也是为啥后端和生产环境下比较少听说跨域的问题,所以这里介绍开发环境中的几种方法。三、解决方案1.完全交予后端解决,配值请求头信息(core),前端什么都不用做,如express.js中配置如下,其它后端语言同理 app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); res.header("X-Powered-By",'3.2.1') res.header("Content-Type", "application/json;charset=utf-8"); next();});2.使用nginx反向代理,在配置文件nginx.conf中找到server{}对象,更改项目地址root和配置代理地址proxy_pass,这个方法适合前端静态文件使用: location / { root D:/browseClient/dist; #自己的前端项目地址 index index.html index.htm;}#解决跨域location /api { # 自定义nginx接口前缀 proxy_pass http://127.0.0.1:3000; # 后台api接口地址 proxy_redirect default; #设置主机头和客户端真实地址,以便服务器获取客户端真实IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }3.如果使用vue-cli搭建的项目,可以直接使用proxyTable模块,项目框架已经集成,找到配置文件在/confif/index.j,如下配置 //代理配置表,在这里可以配置特定的请求代理到对应的API接口proxyTable:{ "/adv":{ target:"http://127.0.0.1:3000",//需要访问的服务器地址 changeOrigin:true,//true为开启代理 pathRewrite:{ '^/adv': '/'//路径的替换规则 } }, "/user":{ target:"http://127.0.0.1:3000",//访问的服务器地址 changeOrigin:true,//true为开启代理 pathRewrite:{ '^/user': '/'//路径的替换规则 } }}显然,大部分情况我们不可能为每个api接口都在这加一个规则,所以更好的配置是: proxyTable: { '**': { target: 'http://127.0.0.1:3000', changeOrigin: true, //允许跨域 }}或者 ...

June 25, 2019 · 1 min · jiezi