PyTorch入门:手把手教你用pytorch搭建一个简单的卷积神经网络

深度智心

《PyTorch入门:手把手教你用pytorch搭建一个简单的卷积神经网络》

PyTorch发布已经有段时间了,最近越来越火,但周围用的人不是很多,很多人已经用习惯了Caffe或者TensorFlow。其实PyTorch还是很有吸引力和竞争力的,相信会有越来越多的人转移到PyTorch阵营来。

PyTorch的优点比较明显,首先安装起来很方便,根据系统环境选择pip安装或者conda安装(如果你系统安装了Anaconda环境),如果使用GPU需要先安装CUDA,根据版本选择即可,免去了类似安装Caffe依赖库、编译caffe的很多麻烦,如下图:

《PyTorch入门:手把手教你用pytorch搭建一个简单的卷积神经网络》

第二个很大的优点便是简洁易用,今天和大家一起来探讨一下如何用PyTorch来实现一个简单的卷积神级网络。

首先是准备数据,PyTorch准备数据有很多灵活的方式,在最后能够将数据转为Numpy数组即可,通过Numpy数据可以转化为PyTorch所需的Tensor。因此,对于图像数据,可以直接通过opencv,Pillow等做处理;语音数据可以通过scipy和librosa来处理成numpy;文本数据可以通过CNTK之类的自然语言处理库处理成numpy数组。

今天会提供一个处理自己数据的样例,但最后网络所用的训练数据采用MNIST。

以下是一个简单的将图像数据转换为Numpy数组数据的样例,在模型中调用加载处理好的数据,并转为Tensor就可以实现自己数据的训练:

《PyTorch入门:手把手教你用pytorch搭建一个简单的卷积神经网络》

对于MNIST,PyTorch官方封装了加载数据的模块:torchvision.datasets.MNIST,大家可以去官网查看,这里同样会提供一个自己处理MNIST数据的样例,如下:

《PyTorch入门:手把手教你用pytorch搭建一个简单的卷积神经网络》

有了数据,接下来我们可以开始构建模型了,这里构建一个2层卷积,用过torch的人应该很熟悉,模型很简单也很明了:

《PyTorch入门:手把手教你用pytorch搭建一个简单的卷积神经网络》

模型构建完毕,就可以供训练和测试使用了,以下为训练和测试调用模型例子:

《PyTorch入门:手把手教你用pytorch搭建一个简单的卷积神经网络》

这里默认为CPU模型,如果需要使用GUP,需要将数据流和模型都加载到显存,调用*.cuda( )即可。

接下来就是迭代训练和测试:

《PyTorch入门:手把手教你用pytorch搭建一个简单的卷积神经网络》

之后调用main函数就可以愉快的训练了。

欢迎加入PyTorch交流群:637638632

欢迎关注深度学习公众号:深度智心

《PyTorch入门:手把手教你用pytorch搭建一个简单的卷积神经网络》

    原文作者:深度智心
    原文地址: https://www.jianshu.com/p/4a0dd61e8de7
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞