pytorch+mujoco

pytoch部分坑和理解

1,torch.tensor重建
2,torch的卷机操作和线性操作都不能够改变batch那一部分
3,对于两个不同的model进行顺序处理和使用不同的optim时,需要先同时进行backward操作在进行,optimize.step操作
4,对于此样系统而言:relu操作可能会造成数据的inplace,注意使用clone操作还有relu的(replace = false)
5, 不能直接取tensor的一部分会变成list。所以要使用函数torch的操作

torch.sub
$$
torch.sub(input, other,*,alpha=1,out=None)–>Tensor\
Subtracts other, scaled by alpha, from input.\
out_i = input_i - alpha \times other_i
$$

单例(Singleton)

单例是一种设计模式,应用该模式的类只会生成一个实例。

单例模式保证了在程序的不同位置都可以且仅可以取到同一个对象实例:如果实例不存在,会创建一个实例;如果已存在就会返回这个实例。因为单例是一个类,所以你也可以为其提供相应的操作方法,以便于对这个实例进行管理。

Pytorch 实现代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def singleton(cls):
_instance = {}

def inner():
if cls not in _instance:
_instance[cls] = cls()
return _instance[cls]
return inner

@singleton
class Cls(object):
def __init__(self):
pass

cls1 = Cls()
cls2 = Cls()
print(id(cls1) == id(cls2))

MuJoCo环境配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 使用yml配置conda env
conda env create -f environment.yml

# 下载mujoco200

# 放到.mujoco

unzip mujoco200_linux.zip

# 改名为mujoco200

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2020.11-Linux-x86_64.sh --no-check-certificate

sh Anaconda3-2020.11-Linux-x86_64.sh

conda env create -f conda_env.yml

pip install scipy==1.5.0

pip install termcolor==1.1.0 tb-nightly imageio==2.9.0 imageio-ffmpeg==0.4.4 hydra-core==1.1.0 hydra-submitit-launcher==1.1.5

pip install pandas==1.3.0 ipdb==0.13.9 yapf==0.31.0 sklearn==0.0 matplotlib==3.4.2 opencv-python==4.5.3.56

pip install dm_control

pip install mujoco_py==2.0.2.13

pip install lxml==4.5.2

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!