第一次使用Pytorch做神经网络需要安装的包
pandas,numpy,torch,tensorflow(我不知道pytorch框架下为什么需要tensorflow,但是事实是其中有一个小文件,里面import了tensorflow,后续搞明白了,会进行说明或者更改),matplotlib(这应该是一个画图制表的包),sklearn(对数据进行预处理用),大概是这些。环境配置,是先做好pytorch的搭建,需要的包自行下载就好。pycharm里面报错的红色线,可以直接在该环境下下载,非常好用。(里面的函数慢慢了解吧)
数据预处理的过程
重点:
1、将字符类型进行编码,从而可以参与训练,使用函数pd.get_dummies,会将字符串进行0,1编码。
2、气温数据相差太大,用标准化将数据差距减小,从而避免训练过程对大数据的偏重。使用函数: preprocessing.StandardScaler().fit_transform(features)
我遇到的错误和不解
当我更改隐层层数时,会无法收敛,更新方式,为手写的梯度下降,迭代也清空了。暂时还未解决,解决了会更新这部分内容。这个问题,在调包进行网络设计时,就不存在了。但是自己这样写就会有。如果只用两层,就能收敛。
暂时写这么多,更改见之后文章。刚入门,希望大家指点,内容可能有说错的地方,仅供一丢丢参考。
一个pytorch项目的基本流程。
数据预处理:包括不同类型,不合适大小的修正,更适合训练的调整(例如上文所述标准化),还有数据打包(dataloader,一个epoch分成好几个batch,具体细节后续弄懂了补上)。
构造函数:网络的设计(包含卷积层,全连接层,batchnormalization或者dropout的设计,损失函数,优化器的选择)
前向传播:即训练过程(目前是这么理解的),反向传播在pytorch里面直接写函数。