PyTorch上搭建简单神经网络实现回归和分类的示例

  

本文介绍了PyTorch上搭建简单神经网络实现回归和分类的示例,分享给大家,具体如下:

  

 PyTorch上搭建简单神经网络实现回归和分类的示例

  

  

<强> 1。安装方法

  

登录PyTorch官网http://pytorch.org,可以看到以下界面:

  

 PyTorch上搭建简单神经网络实现回归和分类的示例

  

        conda安装pytorch torchvision - c soumith      

  

<强> 2。Numpy与火炬

  

torch_data=https://www.yisu.com/zixun/torch.from_numpy (np_data)可以将numpy(数组)格式转换为火炬(张量)格式;torch_data.numpy()又可以将火炬的张量格式转换为numpy格的阵列式。注意火炬的张量和numpy的数组会共享他们的存储空间,修改一个会导致另外的一个也被修改。

  

对于1维(一维)的数据,numpy是以行向量的形式打印输出,而火炬是以列向量的形式打印输出的。

  

其他例如罪恶,因为,abs,意味着等numpy中的函数在火炬中用法相同。需要注意的是,numpy中np。matmul(数据、数据)和data.dot(数据)矩阵相乘会得到相同结果,火炬中火炬。毫米(张量,张量)是矩阵相乘的方法,得到一个矩阵,tensor.dot(张量)会把张量转换为1维的张量,然后逐元素相乘后求和,得到与一个实数。

  

<强>相关代码:

        进口火炬   进口numpy np      np_data=https://www.yisu.com/zixun/np.arange (6) .reshape ((2、3)   torch_data=torch.from_numpy (np_data) #将numpy(数组)格式转换为火炬(张量)格式   tensor2array=torch_data.numpy ()   print (‘\ nnumpy数组:\ n’, np_data,   torch_data,‘\ ntorch张量:   “\ ntensor数组:\ n”, tensor2array,   )#火炬数据格式在打印的时候前后自动添加换行符      # abs   data=https://www.yisu.com/zixun/[1、2、2、2]   张量=torch.FloatTensor(数据)   print(“\小伙子”,   “\ nnumpy: \ n”, np.abs(数据),   ‘\ ntorch:’, torch.abs(张量)   )# 1维的数据,numpy是行向量形式显示,火炬是列向量形式显示      #罪   打印(   ‘\ nsin’,   “\ nnumpy: \ n”, np.sin(数据),   ‘\ ntorch:’, torch.sin(张量)   )      #的意思   打印(   ‘\ nmean’,   ‘\ nnumpy:’, np.mean(数据),   ‘\ ntorch:’, torch.mean(张量)   )      #矩阵相乘   data=https://www.yisu.com/zixun/[[1、2], [3,4]]   张量=torch.FloatTensor(数据)      print (“\ nmatrix乘法(matmul)”,   \ nnumpy: \ n、np。matmul(数据、数据),   “\ ntorch:”,火炬。毫米(张量,张量)   )      data=https://www.yisu.com/zixun/np.array(数据)   print (“\ nmatrix乘法(点)”,   “\ nnumpy: \ n”, data.dot(数据),   ‘\ ntorch:’, tensor.dot(张量)   )      

<强> 3。变量

  

PyTorch中的神经网络来自于autograd包,autograd包提供了张量所有操作的自动求导方法。

  

autograd。变量这是这个包中最核心的类。可以将变量理解为一个装有张量的容器,它包装了一个张量,并且几乎支持所有的定义在其上的操作,一旦完成运算,便可以调用.backward()来自动计算出所有的梯度。也就是说只有把张量置于变量中,才能在神经网络中实现反向传递,自动求导等运算。

  

可以通过属性. data来访问原始的张量,而关于这一变量的梯度则可通过.grad属性查看。

  

<强>相关代码:

        进口火炬   从火炬。autograd导入变量      张量=torch.FloatTensor ([[1、2], [3,4]])   变量=变量(张量,requires_grad=True)   #打印展示变量类型   打印(张量)   打印(变量)      t_out=torch.mean(张量*张量)#每个元素的^ 2   v_out=torch.mean(变量*变量)   打印(t_out)   打印(v_out)      v_out.backward() #变量的误差反向传递      #比较变量的原型和研究生属性,数据属性及相应的numpy形式   打印(变量:\ n,变量)   # v_out=1/4 *总和(变量*变量)这是计算图中的v_out计算步骤   #针对于v_out的梯度就是,d (v_out)/d(变量)=1/4 * 2 *变量=变量/2   打印(“变量。研究生:\ n ', variable.grad) #变量的梯度   打印(“变量。数据:\ n ', variable.data) #变量的数据   打印(variable.data.numpy()) #变量的数据的numpy形式

PyTorch上搭建简单神经网络实现回归和分类的示例