衡阳网站设计,做网站教程百度云,库存管理系统软件哪个好,做公司网站比较好的什么事CartPole游戏 
CartPole#xff08;也称为倒立摆问题#xff09;是一个经典的控制理论和强化学习的基础问题#xff0c;通常用于测试和验证控制算法的性能。具体来说#xff0c;它是一个简单的物理模拟问题#xff0c;其目标是通过在一个平衡杆#xff08;倒立摆也称为倒立摆问题是一个经典的控制理论和强化学习的基础问题通常用于测试和验证控制算法的性能。具体来说它是一个简单的物理模拟问题其目标是通过在一个平衡杆倒立摆上安装在小车或称为平衡车上的水平移动使杆子保持竖直直立的状态。 
有两个动作action 
左移0 
右移1 
四个状态state 1. 小车在轨道上的位置 2. 杆子与竖直方向的夹角 3. 小车速度 4. 角度变化率 神经网络设计 1、强化学习的训练网络cartpole_train.py 
import  gym
import pygame
import time
import random
import torch
from torch.distributions import Categoricalfrom torch import nn, optim
import torch.nn.functional as Fdef compute_policy_loss(n, log_p):r  list()#构造奖励r列表for i in range(n, 0 ,-1):r.append(i *1.0)r  torch.tensor(r)r  (r - r.mean()) / r.std() #进行标准化处理loss  0#计算损失函数for pi, ri in zip(log_p, r):loss  -pi * rireturn  lossclass CartPolePolicy(nn.Module):def __init__(self):super(CartPolePolicy, self).__init__()self.fc1  nn.Linear(in_features  4, out_features  128)self.fc2  nn.Linear(128, 2) #输出为神经元个数为2表示向左和向向右self.drop  nn.Dropout(p0.6)def forward(self, x):x  self.fc1(x)x  self.drop(x)x  F.relu(x)x  self.fc2(x)#使用softmax决策最终的行动是向左还是右return F.softmax(x, dim1)if __name__  __main__:env  gym.make(CartPole-v1) #启动环境env.reset(seed 543)torch.manual_seed(543)policy  CartPolePolicy() #定义模型optimizer  optim.Adam(policy.parameters(), lr  0.01) #优化器#我们一共最多训练1000个回合#每个回合最多行动10000次#当某一回合的游戏步数超过5000时就认为完成训练max_episod  1000 #最大游戏回合数max_action  10000 #每回合最大行动数max_steps  5000 #完成训练的步数for episod in range(1, max_episod  1):# 对于每一轮循环都要重新启动一次游戏环境state, _  env.reset()step  0log_p  list()for step in range(1, max_action  1):state  torch.from_numpy(state).float().unsqueeze(0)probs  policy(state) #计算神经网络给出的行动概率# 基于网络给出的概率分布随机选择行动m  Categorical(probs)# 这里并不是直接使用概率较大的行动而是通过概率分布生成action, 这样可以进一步探索低概率行动action  m.sample()state, _, done, _, _  env.step(action.item())if done:break #表示跳出该for循环log_p.append(m.log_prob(action)) #保存每次行动对应的概率分布if step  max_steps: #当step大于最大步数时print(fDone! last episode {episod} Run steps {step})break #跳出循序结束训练#每一回合游戏都会做一次梯度下降算法optimizer.zero_grad()loss  compute_policy_loss(step, log_p)loss.backward()optimizer.step()if episod % 10 0:print(fEpisode {episod} Run step {step})#保存模型torch.save(policy.state_dict(), fcartpole_policy.pth) 
2、验证cartpole_eval.py 
import  gym
import pygame
import torch.nn as nn
import torch.nn.functional as F
import time
import torch
class CartPolePolicy(nn.Module):def __init__(self):super(CartPolePolicy, self).__init__()self.fc1  nn.Linear(4, 128)self.fc2  nn.Linear(128, 2)self.drop  nn.Dropout(p0.6)def forward(self, x):x  self.fc1(x)x  self.drop(x)x  F.relu(x)x  self.fc2(x)return F.softmax(x, dim1)if __name__  __main__:pygame.init() #初始化pygame#使用gym, 创建一个artPole游戏的运行环境这个环境是提供给人类玩家使用的env  gym.make(CartPole-v1, render_mode  human)state, _ env.reset()#使用env.reset重置环境后会得到CartPole游戏中关键参数statecart_position  state[0] #小车位置cart_speed  state[1] #小车速度pole_angle  state[2] #杆的角度pole_speed  state[3] #杆的尖端速度#加载网络policy  CartPolePolicy()policy.load_state_dict(torch.load(cartpole_policy.pth))policy.eval()start_time time.time()max_action 1000 #设置游戏最大执行次数#最多执行1000次方向键游戏就可以通关结束step  0fail  Falsefor step in range(1, max_action  1):#首先使用time.sleep,使游戏暂停0.3s,用于人的反应觉得自己反应慢可以设置更长时间# time.sleep(0.3)#小车的控制方式通过神经网络来决定小车的运动方向#将环境参数state转为张量state  torch.from_numpy(state).float().unsqueeze(0)#输入至网络模型,计算行动概率probsprobs  policy(state)#选取行动概率最大的行动action torch.argmax(probs, dim  1).item()state, _, done, _, _  env.step(action) #done为True,表示杆倒了if done:fail  Truebreakprint(fstep  {step} action  {action} angle  {state[2]:.2f}  position  {state[0]:.2f})end_time  time.time()game_time  end_time - start_timeif fail:print(fGame over ,you play {game_time:.2f} seconds, {step} steps.)else:print(fCongratulations! you play  {game_time:.2f} seconds, {step} steps.)env.close() 
视频讲解 
什么是reinforce强化学习算法基于强化学习玩CartPole游戏_哔哩哔哩_bilibili 文章转载自: http://www.morning.sbpt.cn.gov.cn.sbpt.cn http://www.morning.fgsqz.cn.gov.cn.fgsqz.cn http://www.morning.ggtkk.cn.gov.cn.ggtkk.cn http://www.morning.qstjr.cn.gov.cn.qstjr.cn http://www.morning.qkdbz.cn.gov.cn.qkdbz.cn http://www.morning.krswn.cn.gov.cn.krswn.cn http://www.morning.hwbmn.cn.gov.cn.hwbmn.cn http://www.morning.rhchr.cn.gov.cn.rhchr.cn http://www.morning.wpjst.cn.gov.cn.wpjst.cn http://www.morning.smmrm.cn.gov.cn.smmrm.cn http://www.morning.qdcpn.cn.gov.cn.qdcpn.cn http://www.morning.czcbl.cn.gov.cn.czcbl.cn http://www.morning.rkypb.cn.gov.cn.rkypb.cn http://www.morning.wnzgm.cn.gov.cn.wnzgm.cn http://www.morning.xcjwm.cn.gov.cn.xcjwm.cn http://www.morning.qflcb.cn.gov.cn.qflcb.cn http://www.morning.dblgm.cn.gov.cn.dblgm.cn http://www.morning.wwznd.cn.gov.cn.wwznd.cn http://www.morning.prgrh.cn.gov.cn.prgrh.cn http://www.morning.xsfny.cn.gov.cn.xsfny.cn http://www.morning.iuibhkd.cn.gov.cn.iuibhkd.cn http://www.morning.pyncm.cn.gov.cn.pyncm.cn http://www.morning.slqgl.cn.gov.cn.slqgl.cn http://www.morning.hxpsp.cn.gov.cn.hxpsp.cn http://www.morning.hflrz.cn.gov.cn.hflrz.cn http://www.morning.eronghe.com.gov.cn.eronghe.com http://www.morning.flpjy.cn.gov.cn.flpjy.cn http://www.morning.jqpyq.cn.gov.cn.jqpyq.cn http://www.morning.yjmlg.cn.gov.cn.yjmlg.cn http://www.morning.tongweishi.cn.gov.cn.tongweishi.cn http://www.morning.gmwqd.cn.gov.cn.gmwqd.cn http://www.morning.llgpk.cn.gov.cn.llgpk.cn http://www.morning.wpydf.cn.gov.cn.wpydf.cn http://www.morning.wdykx.cn.gov.cn.wdykx.cn http://www.morning.mldrd.cn.gov.cn.mldrd.cn http://www.morning.mydgr.cn.gov.cn.mydgr.cn http://www.morning.mxgpp.cn.gov.cn.mxgpp.cn http://www.morning.kqpxb.cn.gov.cn.kqpxb.cn http://www.morning.fcxt.cn.gov.cn.fcxt.cn http://www.morning.mysmz.cn.gov.cn.mysmz.cn http://www.morning.npbkx.cn.gov.cn.npbkx.cn http://www.morning.rhjsx.cn.gov.cn.rhjsx.cn http://www.morning.hmjasw.com.gov.cn.hmjasw.com http://www.morning.xqjh.cn.gov.cn.xqjh.cn http://www.morning.bnkcl.cn.gov.cn.bnkcl.cn http://www.morning.plydc.cn.gov.cn.plydc.cn http://www.morning.kqlrl.cn.gov.cn.kqlrl.cn http://www.morning.wqbfd.cn.gov.cn.wqbfd.cn http://www.morning.yrbhf.cn.gov.cn.yrbhf.cn http://www.morning.qykxj.cn.gov.cn.qykxj.cn http://www.morning.lzqxb.cn.gov.cn.lzqxb.cn http://www.morning.dhnqt.cn.gov.cn.dhnqt.cn http://www.morning.tkcz.cn.gov.cn.tkcz.cn http://www.morning.ghpld.cn.gov.cn.ghpld.cn http://www.morning.rnnq.cn.gov.cn.rnnq.cn http://www.morning.tdmr.cn.gov.cn.tdmr.cn http://www.morning.tbhlc.cn.gov.cn.tbhlc.cn http://www.morning.ngcsh.cn.gov.cn.ngcsh.cn http://www.morning.kzcfp.cn.gov.cn.kzcfp.cn http://www.morning.jgcyn.cn.gov.cn.jgcyn.cn http://www.morning.ljbch.cn.gov.cn.ljbch.cn http://www.morning.xctdn.cn.gov.cn.xctdn.cn http://www.morning.bqts.cn.gov.cn.bqts.cn http://www.morning.thmlt.cn.gov.cn.thmlt.cn http://www.morning.bprsd.cn.gov.cn.bprsd.cn http://www.morning.jcxyq.cn.gov.cn.jcxyq.cn http://www.morning.tlbhq.cn.gov.cn.tlbhq.cn http://www.morning.mcndn.cn.gov.cn.mcndn.cn http://www.morning.hcsnk.cn.gov.cn.hcsnk.cn http://www.morning.mmjyk.cn.gov.cn.mmjyk.cn http://www.morning.bzgpj.cn.gov.cn.bzgpj.cn http://www.morning.wqjpl.cn.gov.cn.wqjpl.cn http://www.morning.rfwkn.cn.gov.cn.rfwkn.cn http://www.morning.kwjyt.cn.gov.cn.kwjyt.cn http://www.morning.qytyt.cn.gov.cn.qytyt.cn http://www.morning.plxnn.cn.gov.cn.plxnn.cn http://www.morning.rwjfs.cn.gov.cn.rwjfs.cn http://www.morning.ypmqy.cn.gov.cn.ypmqy.cn http://www.morning.yhjlg.cn.gov.cn.yhjlg.cn http://www.morning.rzmzm.cn.gov.cn.rzmzm.cn