美文网首页语言PyTorch深度智心
PyTorch入门:手把手教你用pytorch搭建一个简单的卷积

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

作者: 深度智心 | 来源:发表于2017-05-05 12:25 被阅读10449次

    深度智心

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

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

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

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

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

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

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

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

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

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

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

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

    欢迎加入PyTorch交流群:637638632

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

    相关文章

      网友评论

      • 草帽背包:-1是取剩余的维度,不是保持原有的。

      本文标题:PyTorch入门:手把手教你用pytorch搭建一个简单的卷积

      本文链接:https://www.haomeiwen.com/subject/nkgjtxtx.html