目录
- tensor与int类型转换
- 张量维度不对应错误
- torch.unsqueeze() 和 torch.squeeze()
- tensor.size() 获取tensor维度信息
- Pytorch 查看模型参数
- CartPole环境介绍
- 将一维数组升维reshape()
- numpy.expand_dims增加维度
- PaddlePaddle快速入门
- PARL框架
tensor与int类型转换
数据类型简介:
数据类型包括Python数据类型、Numpy数据类型和Pytorch中的tensor,Pytorch中的tensor又包括CPU上的数据类型和GPU上的数据类型。
解决方法:
int是python的数据类型,torch.cuda.FloatTensor是Pytorch的GPU数据类型。
转换方式为:python数据类型->Numpy数据类型->Pytorch的cup tensor->Pytorch的gpu tensor
例如:
- a为基本的int类型数据
- b=np.array(a), b为numpy数据类型
- c=torch.from_numpy(b),c为CPU的tensor
- d=c.cuda(),d为GPU的tensor
不同数据类型之间的转化:
python基本数据类型和Numpy数据类型之间的转换:
- Numpy—>python 使用data.item(),data为numpy变量
- python—>Numpy 使用np.array(data),data为python变量
Tensor与numpy之间的转换:
- Tensor---->Numpy 使用 data.numpy(),data为Tensor变量
- Numpy ----> Tensor 使用torch.from_numpy(data),data为numpy变量
GPU tensor与CPUtensor之间的转换:
- CPU张量 ----> GPU张量, 使用data.cuda()
- GPU张量 ----> CPU张量 使用data.cpu()
x #这里的x是个整数,eg 2
tmp = []
tmp.append(x) # [2]
x = np.array(tmp) # numpy数据类型
x = torch.from_numpy(x) # CPU的tensor,但这里是IntTensor
x = x.float() # 将该tensor转换为FloatTensor类型
张量维度不对应错误
RuntimeError: size mismatch, m1: [4 x 784], m2: [4 x 784] at /pytorch/aten/src/TH/generic/THTensorMath.cpp:136
添加链接描述
torch.unsqueeze() 和 torch.squeeze()
torch.unsqueeze(input, dim, out=None)
作用:扩展维度
参数:
- tensor (Tensor) – 输入张量
- dim (int) – 插入维度的索引
- out (Tensor, optional) – 结果张量
torch.squeeze(input, dim=None, out=None)
作用:降维
参数:
- input (Tensor) – 输入张量
- dim (int, optional) – 如果给定,则input只会在给定维度挤压
- out (Tensor, optional) – 输出张量
tensor.size() 获取tensor维度信息
使用 tensor.size()
Pytorch 查看模型参数
CartPole环境介绍
环境 env 的 state 返回有4个变量,分别是: (位置x,x加速度, 偏移角度theta, 角加速度)
环境 env 的action有两个 : 0 和 1
env.step(0) :小车向左
env.step(1) :小车向右
将一维数组升维reshape()
类型:numpy模块
语法:reshape((x,y))
参数:1)(x,y)为一维数组要变为x行y列的二维数组,也可以是(x,y,z)的三位数组
返回值:数组。将一维的数组变为多维的数组。
注意:reshape函数生成的新数组和原始数组公用一个内存,也就是说,不管是改变新数组还是原始数组的元素,另一个数组也会随之改变
numpy.expand_dims增加维度
PaddlePaddle快速入门
PARL框架