1.熟悉python,熟练使用pytorch框架
2.复现了网上的几个经典的例子,刚开始的例子重在学习,后边的例子就是完全复现小项目来做的
以下是我后期复现别人做的几个小项目:
一.双向LSTM实现文本情感分析week11&12&13(2021.11.27-2021.12.17)
数据集是25000条英文影评,将这些英文影评经过数据预处理、分割、整合到数据装载,到双向LSTM神经网络中进行训练,再经过验证集,最后在测试集的准确率为79.8%
a.数据集
它包含了25000条英文电影的影评,以及25000×1的标签(positive or negivate)
b.神经网络结构
采用的是双向LSTM模型,两个LSTM对向连接,增加了隐藏向量的个数,使网络有更好地记忆性。
基于数据预处理,将英文影评单词做成数字词典,出现次数越多则排名越靠前,例如the的出现频率最高,则1代表the。3代表a之类。将英文影评处理成25000×200列的张量。然后分割出训练集、验证集、测试集(如下图)。
神经网络结构为:
由上图可以看出:
第一层:将单词输入到嵌入层,使得单词变为词向量
第二层:输入到双向LSTM结构中
第三层:脱落层,防止过拟合
第四层:全连接层
第五层:sigmoid激活层
下图是张量经过各网络中的形状的变化:
二.Resnet实现手势识别week10(2021.11.20-2021.11.26)
a.数据集
它包含1200张64×64的RGB彩色图片,总共6个分类。其中,包括1080张用于训练集,120张用于测试集。包括6种手势分类(0到5)
b.神经网络结构:
采用的是Resnet50的神经网络结构:
第一部分为ConvBlock,又叫卷积块,它的主要作用是仅仅应用(学习后的)线性函数来减少输入的维度,以便在后面的 加法步骤中的维度相匹配。适用于维度不同的时候
它的内部为:
第二部分为IndentityBlock,又叫恒等块,恒等块是残差网络使用的的标准块,适用于输入输出维度相同的时候
它的内部为:
由多个第一部分(卷积块)和第二部分(恒等块)构成了50层的结构,则为resnet50结构
它的整体结构为:
c.训练和测试:
每训练一遍,则测试一遍,可以得出最后的准确率在0.99以上
三.cifar-10数据集的图像分类week9(2021.11.13-2021.11.19)
a.数据集
它包含 60000 张 32 X 32 的 RGB 彩色图片,总共 10 个分类。其中,包括 50000 张用于训练集,10000 张用于测试集。包括十种物体类别:‘飞机’,‘汽车’,‘鸟’,‘猫’,‘鹿’,‘狗’,‘青蛙’,‘马’,‘船’,‘卡车’。CIFAR-10中的图像尺寸为3×32×32,即尺寸为32×32像素的3通道彩色图像。
b.神经网络的结构:
第一层:卷积层conv2d | in=1 | out=6 | kernel=3*3 |
第二层:卷积层conv2d | in=6 | out=16 | kernel=3*3 |
第三层:全连接层linear | in=16*28*28 | out=512 | |
第四层:全连接层linear | in=512 | out=64 | |
第五层:全连接层linaer | in=64 | out=10 |
c.训练和测试:
batch_size=4,所以1个Epoch中(共2个Epoch)包含12500个step,然后每1000个step则print一次,结果如下:
3.总的来说这学期的收获还是蛮多的:
新环境、新同学、python的环境配置与熟悉、pytorch的使用、各种神经网络的复现、电脑重做系统、算法的了解等,这是一个由通信向计算机转变的过程。