安装pycharm
进入pycharm安装目录,运行安装程序。
(PY37RL) johnwatson@rescuer-r720:~$ cd pycharm-community-2021.3.1/bin/
(PY37RL) johnwatson@rescuer-r720:~/pycharm-community-2021.3.1/bin$ sh ./pycharm.sh
在bin目录下启动pycharm
./pycharm.sh
将虚拟环境添加到pycharm中
文件->设置->Python解释器->⚙->添加->Virtualenv环境->现有环境->选择虚拟环境路径
在Gym中环境用Env类表示,Env类有两个核心方法:reset(),step(),以及两个字段:action_space,observation_space
reset()方法没有参数,它命令环境将自己重置成初始状态,并返回初始观察。
step()方法告诉环境执行哪个动作,执行动作后获得观察、奖励,并获取片段是否结束的标记。
step()有1个包含4个参数(observation,reward,done,info)的元组作为返回值,动作作为形参。
action_space限制环境中允许执行的动作,observation_space限定了环境中允许出现的观察。
API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。
被继承的类叫做超类,也叫做父类。
super()函数是用于调用父类(超类)的一个方法。以下是super()方法的语法
super(type[, object-or-type])
type——类
object-or-type——一般为self
Python 3 可以使用直接使用 super().xxx 代替 Python 2的super(Class, self).xxx :
Gym的额外功能:包装器。Wrapper类继承自Env类,它的构造函数只有一个参数,即要被“包装”的Env类的实例。Wrapper为我们提供了三个子类ObservationWrapper,ActionWrapper和RewardWrapper,在三个子类中我们可以重新定义方法observation(obs),reward(rew)和action(act),达到添加额外功能的目的。
PyTorch中的张量有8中类型3种浮点类型(16位、32位和64位),5种整数类型(有符号8位,无符号8位、16位、32位、64位)
创建张量tensor实例
>>> import torch
>>> import numpy as np
>>> a = torch.FloatTensor(3,2)
>>> a
tensor([[1.3563e-19, 1.3563e-19],
[6.1678e+16, 1.0139e-08],
[2.5892e-12, 4.0285e-11]])
上述代码创建了一个3*2的32位浮点类型张量。除了上述代码,还可以在括号内直接提供可迭代对象(列表或元组)来创建张量。
清除张量的内容
>>> a.zero_()
tensor([[0., 0.],
[0., 0.],
[0., 0.]])
张量有两种类型的操作:inplace,functional
inplace操作需在函数名称后附加下划线_,作用于张量的内容,然后返回对象本身。
functional操作创建一个张量的副本,对其副本进行修改,原始张量不变。