目录

  • 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 查看模型参数

python把tensor转换成str tensor转int_数据类型

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增加维度

python把tensor转换成str tensor转int_python_02

PaddlePaddle快速入门


PARL框架

添加链接描述