构建一个简单的卷积神经网络,使用DRL框架tianshou匹配DQN算法

本文介绍了如何用深度强化学习DQN算法,结合tianshou框架,构建一个简单的卷积神经网络来实现小游戏的自动控制。讨论了奖励机制的设计,并详细描述了卷积神经网络的构建过程。
摘要由CSDN通过智能技术生成

在之前的文章中,我们做了如下工作:

本节开始,我们将讨论如何用深度强化学习实现小游戏的自动控制。

构造一个简单的卷积神经网络,实现 DQN

本文涉及的 .py 文件有:

DQN_train/gym_warpper.py
DQN_train/dqn_train.py

requirements

tianshou
pytorch > 1.40
gym
openCV

封装交互环境

强化学习算法有效,很大程度上取决于奖励机制设计的是否合理。

事件 奖励
动作后碰撞障碍物、墙壁 -1
动作后无事发生 0.1
动作后得分 1

封装代码在 gym_wrapper.py 中,使用类 AmazingBrickEnv

强化学习机制与神经网络的构建

我设计的机制为:

  • 每 2 帧进行一次动作决策;
  • 状态的描述变量为 2 帧的图像。

对于每帧的图像处理如下。

# 首先把图像转换成 RGB 矩阵
pygame.surfarray.array3d(pygame.display.get_surface())
# 使用 openCV 将 RGB 矩阵矩阵转换成 100*100 的灰度0-1矩阵
x_t = cv2.cvtColor(cv2.resize(obs, (100, 100)), cv2.COLOR_BGR2GRAY)

最后使用 np.stack() 将两帧数据合并,我们就得到了一个 2 通道的图像矩阵数据。

卷积神经网络的构建

class Net(nn.Module):
    def __init__(self):
        super().__init__
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值