莫烦python讲得好差_莫烦PYTHON——PyTorch——DQN 代码详解

import torch # 导入torch

import torch.nn as nn # 导入torch.nn

import torch.nn.functional as F # 导入torch.nn.functional

import numpy as np # 导入numpy

import gym # 导入gym

# 超参数

BATCH_SIZE = 32 # 样本数量

LR = 0.01 # 学习率

EPSILON = 0.9 # greedy policy

GAMMA = 0.9 # reward discount

TARGET_REPLACE_ITER = 100 # 目标网络更新频率

MEMORY_CAPACITY = 2000 # 记忆库容量

env = gym.make('CartPole-v0').unwrapped # 使用gym库中的环境:CartPole,且打开封装 (若想了解该环境,请自行百度)

N_ACTIONS = env.action_space.n # 杆子动作个数 (2个)

N_STATES = env.observation_space.shape[0] # 杆子状态个数 (4个)

"""

torch.nn是专门为神经网络设计的模块化接口。nn构建于Autograd之上,可以用来定义和运行神经网络。

nn.Module是nn中十分重要的类,包含网络各层的定义及forward方法。

定义网络:

需要继承nn.Module类,并实现forward方法。

一般把网络中具有可学习参数的层放在构造函数__init__()中。

不具有可学习参数的层(如ReLU)可放在构造函数中,也可不放在构造函数中(而在forward中使用nn.functional来代替)。

只要在nn.Module的子类中定义了forward函数,backward函数就会被自动实现(利用Autograd)。

在forward函数中可以使用任何Variable支持的函数,毕竟在整个Pytorch构建的图中,是Variable在流动。还可以使用if,for,print,log等python语法。

注:Pytorch基于nn.Module构建的模型中,只支持mini-batch的Variable输入方式。

"""

# 定义Net类 (定义网络)

class Net(nn.Module):

def __init__(self): # 定义Net的一系列属性

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值