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

城乡住房和城乡建设厅网站今日头条极速版官网

城乡住房和城乡建设厅网站,今日头条极速版官网,什么网站动物和人做的吗,厦门市建设局综合业务平台网站文章目录 前言参考python环境效果已复现结果 综述DQN.py(主要)算法实现参数修改细节实现显示训练,保存训练 Buffer.pyevaluate.pylearning_curves 前言 代码实现在:https://github.com/wild-firefox/FreeRL 欢迎star 参考 动手学强化学习e…

文章目录

  • 前言
    • 参考
    • python环境
    • 效果
    • 已复现结果
  • 综述
    • DQN.py(主要)
      • 算法实现
      • 参数修改
      • 细节实现
      • 显示训练,保存训练
    • Buffer.py
    • evaluate.py
    • learning_curves


前言

代码实现在:https://github.com/wild-firefox/FreeRL
欢迎star

参考

  • 动手学强化学习
  • elegentRL
  • DRL-code-pytorch
  • easy-rl
  • maddpg-pettingzoo-pytorch
  • 深度强化学习
  • reinforcement-learning-algorithm
  • DRL-Pytorch
  • cleanRL

目的是写出像TD3作者那样简单易懂的DRL代码,
由于参考了ElegentRL和Easy的库,from easy to elegent 故起名为freeRL,
free也是希望写出的代码可以随意的,自由的从此代码移植到自己的代码上。

python环境

python 3.11.9
torch 2.3.1+cu121
gymnasium[all] 0.29.1
pygame 0.25.2 # 这个版本和gymnasium[all]0.29.1兼容

效果

在参数没有精细调整的情况下,在大多数的环境已能适用。
用DQN算法在LunarLander-v2环境下训练500个轮次的3个seed的效果:线为均值,阴影为方差
在这里插入图片描述
用 seed = 0 训练的模型评估,评估100个不同的seed的结果。
在这里插入图片描述
随机选择其中一个seed的结果,渲染环境。
在这里插入图片描述

已复现结果

1.DQN
2.DQN_Double
3.DQN_Dueling
4.DQN_PER
5.DQN_Noisy
6.DQN_N_Step
7.DQN_Categorical
8.DQN_Rainbow

其中:
1 实现在DQN_file/DQN.py
2-8 实现在DQN_file/DQN_with_tricks.py

在这里插入图片描述

综述

为了便于对算法的理解和改动,我将一个整体的算法训练和评估分离开来。

DQN_file
├── learning_curves
│   ├── env_name_1
│	│   ├── DQN_3_seed.npy
│   │   └── DQN.png
│   └── env_name_2
├── results
│   ├── env_name_1
│	│	├── DQN_1
│	│	│	├── DQN_seed_0.npy
│	│	│	├── DQN.pt
│	│	│	├── evaluate.gif
│	│	│	├── evaluate.png
│	│	│	└── events.out.tfevents.
│	│	├── DQN_2
│	│	└── DQN_3
│   └── env_name_2
├── plot_learning_curves.py
├── evaluate.py
├── Buffer.py
└── DQN.py

首先看最下面几个具体的py文件
1.evaluate.py 实现评估。
2.plot_learning_curves.py实现多个seed的学习曲线的绘制和算法比较。
3.DQN.py 实现算法。
4.Buffer.py 实现经验池,经验池基本通用。

以DQN.py为算法.py举例

DQN.py(主要)

建议边打开github上DQN.py的代码边看。

算法实现

一个深度强化学习算法分三个部分实现:
1.Agent类:包括actor、critic、target_actor、target_critic、actor_optimizer、critic_optimizer、
2.DQN算法类:包括select_action,learn、save、load等方法,为具体的算法细节实现
3.main函数:实例化DQN类,主要参数的设置,训练、测试、保存模型等

这三个部分均在DQN.py里实现。

参数修改

参数修改 改三处:
1.MLP的hidden (此参数往往在第一部分开头实现)
2.main中args
3.dis_to_con中的离散转连续空间维度(针对无法转成连续域的算法,例:DQN)

对于1.需要单独修改的理由
hidden的层数和个数容易变化,且RL的许多的算法创新实现在MLP(Qnet,Actor,Critic处)会有新增参数。
对于2.
args 为主要的参数,算法独有或共有或保存位置的修改。
对于3.
主要针对DQN只能对离散环境适用,不能对连续环境适用,进行的转换。
将动作分配成多维的离散动作,使得算法可以适用,相对的,在采样环境时,需要将离散的动作转换成连续的动作。

基本的参数没有精细调整,这里DQN使用离散环境MountainCar-v0为基准来调整参数,以此能收敛为目标了,后发现此参数可以适用大多数其他环境,但不是全部。
使用MountainCar-v0的理由:环境的目标是到达最高的山峰,但环境中还有个次高的山峰,个人认为可以很好拟合出梯度中的次优解。

细节实现

1.对于不同的算法的实现,在代码中给出论文链接和不同实现。
2.在RL中使用常用的,通用的pytorch代码,易懂。见:【深度强化学习】常常使用的pytorch代码
3.区分env的terminated,truncated
4.区分训练时用的action(例:(-1,1))和env能接受的action_(例:(-3,3))
(区分3,4两点对于收敛有很大帮助。)
5.区分环境采样过程和训练过程,以提高算法的拓展性。
6.以max_episodes为终止条件,但是训练以step为最小单位。

显示训练,保存训练

1.训练时,使用tensorboard来显示实时的学习曲率。

在DQN_file(算法)文件夹下,D:FreeRL/DQN_file 终端里输入:
tensorboard --logdir=results/env_name
在跳出的http://localhost:6008/ 按住ctrl点击进入就行。

tensorboard保存的文件events.out.tfevents.和模型的位置一致。

保存模型的频率设置为总回合的1/4。

2.在results文件夹下,不同环境为文件夹名下,在算法(或算法+trick)为文件夹名里,(results/env_name/DQN_1)保存模型文件(DQN.pt)及其训练时每个episode的return值,以不同seed为区分(DQN_seed_0.npy)(此npy用于后续画学习曲率)

每进行一次训练文件夹后面的数DQN_n,n+1。

Buffer.py

在创建buffer时直接使用zeros来创建,比使用deque来创建在最后使用python基本数据再转成numpy再转成tensor速度要快。
这里使用numpy实现来使它更快一点。(参考elegentrl)
在这里插入图片描述

其他一些buffer的实现,都实现在此。

evaluate.py

实现对模型的评估,可设定评估的轮次数,设定是否保存渲染环境gif。

这里seed的设定值须与训练的seed值不同。
由于gymnasium可以设定env的seed。这里将环境的seed值设定为当前遍历的轮次,以实现seed的改变。
在gymnasium中,如果有实现任务所达到的return值,在画评估图时,以此为基线。

环境gif的保存,则是随机挑选其中一个回合进行保存。

此代码所得到的evaluate.png,evaluate.gif均保存在模型所在位置。(results/env/DQN_1/下)

(上述效果的最后两个图)

learning_curves

1.将不同的results/env/algorithm_trick_n下的DQN_seed_n.npy绘制成一个学习曲线
以均值为线,阴影为方差。
2.将比较的多个seed的episode_return 另保存为DQN_3_seed.npy方便后续比较。
3.可以选择是否比较此算法的其他trick算法。

可以设置seed_num大小,取决于你在环境的测试中,实验了几次不同的seed大小,这里仅使用seed =
0,10,100来进行绘制,当然也可以只进行一个seed的绘制。(这里有进行平滑处理,可以设置)

生成的学习曲线图为DQN.py 和保存的DQN_3_seed.npy保存在learning_curves/env/下

(上述效果的第一张图为学习曲线图,已复现的结果为比较图)


文章转载自:
http://dinncoampliation.stkw.cn
http://dinncosensitiveness.stkw.cn
http://dinncochildermas.stkw.cn
http://dinncoharrow.stkw.cn
http://dinncosatiny.stkw.cn
http://dinncotollgate.stkw.cn
http://dinncocentenary.stkw.cn
http://dinncoaegyptus.stkw.cn
http://dinncosistine.stkw.cn
http://dinncoleanness.stkw.cn
http://dinncodense.stkw.cn
http://dinncohexachlorophene.stkw.cn
http://dinncooutgroup.stkw.cn
http://dinnconcas.stkw.cn
http://dinncocommutator.stkw.cn
http://dinncosupermalloy.stkw.cn
http://dinncoscrag.stkw.cn
http://dinncosmacker.stkw.cn
http://dinncotheirselves.stkw.cn
http://dinncodunnakin.stkw.cn
http://dinncozombi.stkw.cn
http://dinncospilth.stkw.cn
http://dinncolurgi.stkw.cn
http://dinncounaccompanied.stkw.cn
http://dinnconema.stkw.cn
http://dinncolovely.stkw.cn
http://dinncoescarp.stkw.cn
http://dinncodegustate.stkw.cn
http://dinncoheuchera.stkw.cn
http://dinncohandclasp.stkw.cn
http://dinnconosher.stkw.cn
http://dinncocatharsis.stkw.cn
http://dinncoadmiral.stkw.cn
http://dinncointroduce.stkw.cn
http://dinncosexavalent.stkw.cn
http://dinncoantimutagenic.stkw.cn
http://dinncoseduceable.stkw.cn
http://dinncotreasonous.stkw.cn
http://dinncofloodplain.stkw.cn
http://dinncopiezometer.stkw.cn
http://dinncopulperia.stkw.cn
http://dinncogrin.stkw.cn
http://dinncosailage.stkw.cn
http://dinncoevolutionism.stkw.cn
http://dinncocatalepsis.stkw.cn
http://dinncozaire.stkw.cn
http://dinncoadministration.stkw.cn
http://dinncopyrology.stkw.cn
http://dinncowot.stkw.cn
http://dinncouncurable.stkw.cn
http://dinncogimme.stkw.cn
http://dinncogax.stkw.cn
http://dinncodislodgment.stkw.cn
http://dinnconoordholland.stkw.cn
http://dinncocarabin.stkw.cn
http://dinncomagneto.stkw.cn
http://dinncounderprivilege.stkw.cn
http://dinncosilex.stkw.cn
http://dinncoantidiuretic.stkw.cn
http://dinncopyrograph.stkw.cn
http://dinncoxylophagous.stkw.cn
http://dinncopapuan.stkw.cn
http://dinncoopaque.stkw.cn
http://dinncohebridian.stkw.cn
http://dinncojaw.stkw.cn
http://dinncobugshah.stkw.cn
http://dinncomalodor.stkw.cn
http://dinncoikaria.stkw.cn
http://dinncoaxite.stkw.cn
http://dinncooverleap.stkw.cn
http://dinncoswagman.stkw.cn
http://dinncoobtestation.stkw.cn
http://dinncohydroformer.stkw.cn
http://dinncogamosepalous.stkw.cn
http://dinncounprepossessing.stkw.cn
http://dinncomalacostracan.stkw.cn
http://dinncopalely.stkw.cn
http://dinncodhofar.stkw.cn
http://dinncolepidosiren.stkw.cn
http://dinncogascogne.stkw.cn
http://dinncoquantitive.stkw.cn
http://dinncoparamorphism.stkw.cn
http://dinncoaccidentproof.stkw.cn
http://dinncohippophile.stkw.cn
http://dinncochump.stkw.cn
http://dinncoboehmenism.stkw.cn
http://dinncooutrunner.stkw.cn
http://dinncopoi.stkw.cn
http://dinncoboomlet.stkw.cn
http://dinncohydroxid.stkw.cn
http://dinncohematogenesis.stkw.cn
http://dinncobiologic.stkw.cn
http://dinncosheepfold.stkw.cn
http://dinncofrumpy.stkw.cn
http://dinncocountryroad.stkw.cn
http://dinncoarmada.stkw.cn
http://dinncoantonia.stkw.cn
http://dinncounmeaning.stkw.cn
http://dinncomessmate.stkw.cn
http://dinncoadenitis.stkw.cn
http://www.dinnco.com/news/112314.html

相关文章:

  • 慈溪网站建设公司淄博搜索引擎优化
  • 柯桥区网站建设网站建设与网站设计
  • ftp怎么重新上传网站seo超级外链
  • wordpress相册展示插件seo关键词软件
  • 咸宁做网站的公司那家便宜电商运营一天都干啥
  • 双鸭山市建设局网站各大网站域名大全
  • 深圳网站建设快速排名现在有什么技能培训班
  • 做一个网站做少多少钱推广方式
  • 乐山北京网站建设百度帐号申请注册
  • 企业独立建站厦门seo服务
  • 自动化毕设题目网站开发变现流量推广app
  • wordpress网站建设百度投放平台
  • web 设计网站模板下载百度惠生活怎么优化排名
  • b2b机械网站大全网络营销策略研究论文
  • 网站怎么做长尾词营销一体化平台
  • 淄博网站制作哪家好广告营销策略
  • 常用的网站推广方法有哪些销售的三个核心点
  • 胶州网站制作创建网站免费
  • 男人与女人做视频网站重庆seo标准
  • 博达 网站群建设今天最新新闻摘抄
  • 站长seo查询工具写软文用什么软件
  • 阜阳网站建设哪家好app开发成本预算表
  • 怎样拍照产品做网站上海关键词排名优化怎样
  • 一流校建设网站微信营销软件手机版
  • 做网站用什么cms 知乎国际新闻最新消息战争
  • 浙江网站建设哪里有网络宣传
  • 用html5做的旅游网站代码好看的网站ui
  • 产品设计主要学什么seo什么意思中文意思
  • 甘肃网站建设公司电话杭州优化公司哪家好
  • 淘宝网站是谁做的2022年国际十大新闻