深度学习练习

什么是 PyTorch ?

PyTorch是一个python库,它主要提供了两个高级功能:

  • GPU加速的张量计算

  • 构建在反向自动求导系统上的深度神经网络

  1. 先导入torch包

  1. torch既可以定义为单个变量可以定义不同维度的数组,根据需要选用。

  1. 根据tensor.empty/rand/zeros/ones等的不同可以直接建立不同的数组数据。

 

 

 

 

  1. torch关于矩阵的操作:

  1. 点积:m @ v:

    第一次运行报错,给出的反馈是m的type为long,我就查了一下:

    torch.tensor和torch.Tensor的对比;

    前者是python的一个函数,有list,tuple,array,scalar等类;

    后者是orch.FloatTensor的别名;

    然后改一下m,得以正确运行。

  1. 矩阵元素相加,转置,构建一个等差数列式的数组(和matlab的方式差不多)

  1. 通过绘图工具分析rand生成的随机数的统计规律:正态分布。并且当生成的随机数足够多时,与正态分布的拟合度越高。

  1. 安装相应的工具并导入包。

  1. 初始化 X 和 Y。 X 可以理解为特征矩阵,Y可以理解为样本标签。 结合代码可以看到,X的为一个 NxC 行, D 列的矩阵。C 类样本,每类样本是 N个,所以是 N*C 行。每个样本的特征维度是2,所以是 2列。

    在 python 中,调用 zeros 类似的函数,第一个参数是 y方向的,即矩阵的行;第二个参数是 x方向的,即矩阵的列。

     

 

  1. 根据上面的代码生成了一个螺旋图形。。。

 

11. 构建线性模型分类:使用 print(model) 把模型输出,可以看到有两层:

              第一层输入为 2(因为特征维度为主2),输出为 100;

              第二层输入为 100 (上一层的输出),输出为 3(类别数)。

              从上面图示可以看出,线性模型的准确率最高只能达到 50% 左右(此处输出为0.504),对于这样复杂的一个数据分布,线性模型难以实现准确分类。

 12. 构建两层神经网络分类可以看到,在两层神经网络里加入 ReLU 激活函数以后,分类的准确率得到了显著提高。达到了0.949。(虽然知道结果是这样的,但是具体的怎么实现还是有点迷,课下我再去看看吧。。。)

 

 

 

 

posted @ 2021-10-09 16:30  ouc-SE-xxx  阅读(59)  评论(0)    收藏  举报