利用Pytorch进行CNN详细剖析

大数据

转载请注明出处:利用Pytorch进行CNN详细剖析  (乐投网 - 大数据,人工智能第一干货网)

本文缘起于一次CNN作业中的一道题,这道题涉及到了基本的CNN网络搭建,在MNIST数据集上的分类结果,Batch Normalization的影响,Dropout的影响,卷积核大小的影响,数据集大小的影响,不同部分数据集的影响,随机数种子的影响,以及不同激活单元的影响等,能够让人比较全面地对CNN有一个了解,所以想做一下,于是有了本文。

工具

  • 开源深度学习库: PyTorch
  • 数据集:MNIST

实现

初始要求

大数据

首先建立基本的BASE网络,在Pytorch中有如下code:

class Net(nn.Module):
 def __init__(self):
 super(Net, self).__init__()
 self.conv1 = nn.Conv2d(1, 20, kernel_size=(5, 5), stride=(1, 1), padding=0)
 self.conv2 = nn.Conv2d(20, 50, kernel_size=(5, 5), stride=(1, 1), padding=0)
 self.fc1 = nn.Linear(4*4*50, 500)
 self.fc2 = nn.Linear(500, 10)

def forward(self, x):
 x = F.max_pool2d(self.conv1(x), 2)
 x = F.max_pool2d(self.conv2(x), 2)
 x = x.view(-1, 4*4*50)
 x = F.relu(self.fc1(x))
 x = self.fc2(x)
 return F.log_softmax(x)

这部分代码见base.py。

问题A:预处理

大数据

即要求将MNIST数据集按照规则读取并且tranform到适合处理的格式。这里读取的代码沿用了Big

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值