- 博客(8)
- 收藏
- 关注
原创 StableBaselines3学习记录-3
env=make_vec_env(lambda: mywrapper(), n_envs=8), #使用N个环境同时训练。env=make_vec_env(lambda:MyWrapper(), n_envs=8), #使用N个环境同时训练。buffer_size=10000, #最多积累N步最新的数据,旧的删除。buffer_size=1000, #最多积累N步最新的数据,旧的删除。train_freq=(1, 'step'), #训练的频率。"""DQN算法玩冰湖"""gym游戏的简单实例。
2025-05-06 16:20:11
1539
原创 StableBaselines3学习记录-2
print(f"当前平均奖励: {avg_reward:.2f}(最近{len(self.episode_returns)}个episode)", end='\r')# print(f"使用设备: {'CUDA' if next(self.model.policy.parameters()).is_cuda else 'CPU'}\n")# datas = [] # 存储格式:(state, action, reward, next_state, done)
2025-05-06 14:26:40
619
原创 StableBaselines3 学习记录-1
"""isinstance(object,class )是Python 内置函数,用于检查 object 是否是class 的实例(或子类实例)# assert isinstance(self.env.action_space, gym.spaces.Box), "只适用于连续动作空间"# assert是Python 的断言关键字。# 它是 Stable-Baselines 的升级版本,专注于提供更高效、更易用且模块化的接口,支持多种经典的强化学习算法。
2025-05-04 20:49:58
1946
原创 强化学习的学习记录-4
reward_sum = reward_sum * 0.98 + rewards[i] # 越早的步骤奖励衰减越多。# prob = model(state_tensor)[actions[i]] # 当前动作的概率。# loss = -prob.log() * reward_sum # 损失函数。# if play and random.random() < 0.2: #跳帧。
2025-05-03 22:04:25
814
原创 强化学习的学习记录-3
该算法相比于Qlearning算法,多定义一个字典来保存历史数据,键是(row,col,action),值是(next_row,next_col,reward)#根据时序差分算法,当前state,action的分数 = 下一个state,action的分数*gamma + reward。#保存历史数据,键是(row,col,action),值是(next_row,next_col,reward)') # 无效动作处理。#这也是没办法的办法,因为显然没有精确解,这里使用延迟更新的next_model评估。
2025-05-03 14:08:25
688
原创 强化学习的学习记录-2
输入当前的格子(state)的当前的动作(action) 当前动作的回报(reward)下一个格子(state)下一个动作(action)# #根据时序差分算法,当前state,action的分数 = 下一个state,action的分数*gamma + reward。# #根据时序差分算法,当前state,action的分数 = 下一个state,action的分数*gamma + reward。# #更新分数,每次更新取决于当前的格子,当前的动作,下个格子,和下个格子的动作。
2025-05-02 22:46:55
444
原创 强化学习的学习记录-1
因为中奖概率未知,所以先进行探索环境,也就是尝试按每一个按钮记录它们的中奖概率,根据贪婪算法的思想很明显利用环节就是一直选择回报最高的按钮。定义策略评估函数(更新values):定义一个new-values,遍历每一个格子,分别通过Q函数计算每一个格子四个动作的价值,# 训练过程就是,多次选择老虎机并记录所有老虎机结果即计算总得回报,以中奖概率最高的老虎机计算最理想的标准结果,定义策略提升函数(更新pi):根据每个格子的价值重新计算每个动作的概率,定义一个new-pi,遍历每一个格子,
2025-05-02 21:53:36
1596
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人