深度学习作业
PyTorch基础
PyTorch是一个python库,它主要提供了两个高级功能:
- GPU加速的张量计算。
- 构建在反向自动求导系统上的深度神经网络。
初步理解是任意维度的数组。
1.torch 的创建一些方法
根据需求,torch可以是不同维度的数组,即张量。

torch的一些初始化方法

2.tensor的一些运算方法介绍

乘法,加法,转置,@符号是乘法符号

返回从3到8的数量为20的张量,平均增长

利用matplotlib画图

tensor 的不同合并方式

Spiral classifciation
下载绘图函数后,引入基本的库,然后初始化重要参数

初始化 X 和 Y。 X 可以理解为特征矩阵,Y可以理解为样本标签。 结合代码可以看到,X的为一个 NxC 行, D 列的矩阵。C 类样本,每类样本是 N个,所以是 N*C 行。每个样本的特征维度是2,所以是 2列。
在 python 中,调用 zeros 类似的函数,第一个参数是 y方向的,即矩阵的行;第二个参数是 x方向的,即矩阵的列,下面结合代码看看 3000个样本的特征是如何初始化的。并进行数据可视化。

1. 构建线性模型分类

使用 print(y_pred.shape) 可以看到模型的预测结果,为[3000, 3]的矩阵。每个样本的预测结果为3个,保存在 y_pred 的一行里。值最大的一个,即为预测该样本属于的类别
score, predicted = torch.max(y_pred, 1) 是沿着第二个方向(即X方向)提取最大值。最大的那个值存在 score 中,所在的位置(即第几列的最大)保存在 predicted 中。下面代码把第10行的情况输出,供解释说明

上面使用 print(model) 把模型输出,可以看到有两层:
- 第一层输入为 2(因为特征维度为主2),输出为 100;
- 第二层输入为 100 (上一层的输出),输出为 3(类别数)
2. 构建两层神经网络分类

可以看出,在两层神经网络里加入 ReLU 激活函数以后,分类的准确率得到了显著提高。

浙公网安备 33010602011771号