由于只需要修改之前基于ANN模型代码的模型设计部分所以篇幅较短,简单的加点注释给自己查看即可

视频链接:https://www.bilibili.com/video/BV1Y7411d7Ys?p=10

class Net(torch.nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = torch.nn.Conv2d(1, 10, kernel_size=5) #卷积层传递
self.conv2 = torch.nn.Conv2d(10, 20, kernel_size=5)
self.pooling = torch.nn.MaxPool2d(2) #池化层
self.fc = torch.nn.Linear(320, 10) def forward(self, x):
# flatten data from (n,1,28,28) to (n, 784)
batch_size = x.size(0)
x = F.relu(self.pooling(self.conv1(x)))
x = F.relu(self.pooling(self.conv2(x)))
x = x.view(batch_size, -1) # -1 此处自动算出的是320
x = self.fc(x) return x

留下来的作业是自己修改卷积层,这是我的代码

class Net(torch.nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = torch.nn.Conv2d(1, 10, kernel_size=5)
self.conv2 = torch.nn.Conv2d(10, 20, kernel_size=5)
self.conv3 = torch.nn.Conv2d(20, 30, kernel_size=2)
self.pooling = torch.nn.MaxPool2d(2)
self.fc1 = torch.nn.Linear(30, 20)
self.fc2 = torch.nn.Linear(20, 10) def forward(self, x):
batch_size = x.size(0)
x = F.relu(self.pooling(self.conv1(x)))
x = F.relu(self.pooling(self.conv2(x)))
x = F.relu(self.pooling(self.conv3(x)))
x = x.view(batch_size, -1)
x = self.fc1(x)
x = self.fc2(x)
return x

这个作业完成过程让我理解了

self.conv1 = torch.nn.Conv2d(1, 10, kernel_size=5)

这句代码的意思。他的意思是一层变成10层,卷积为5*5,所以在执行完

self.conv3 = torch.nn.Conv2d(20, 30, kernel_size=2)

这一步后,你就要知道,你传入20通道,输出是30通道,卷积层为2x2,这个时候你的通道数量只有30,而图像也变成1x1了(卷积导致),所以你的全连接层只有30往下降维

另外我用CPU和GPU 分别跑了一下这个任务

开头加入了

start = time.time()

程序结尾加入

end = time.time()
print("程序运行时间为:{}".format(end-start))

这样一来就可以看到分别在CPU和GPU的运行时间

CPU:226s GPU:148s



确实GPU快

最新文章

  1. C#语言各种集合介绍
  2. java操作office和pdf文件页面列表导出cvs,excel、pdf报表.
  3. windws 安装jdk
  4. iOS开发——实用篇Swift篇&状态栏操作
  5. android 更新uI主线程
  6. Delphi中的异常处理(10种异常来源、处理、精确处理)
  7. iOS中UIWebView使用JS交互 - 机智的新手
  8. pl/sql oracle
  9. phpmyadmin修改mysql数据库密码
  10. Aurora Player 开源啦~~~
  11. js_9_dom属性
  12. HTML中的javascript交互
  13. BZOJ.4212.神牛的养成计划(Trie 可持久化Trie)
  14. django项目 报错:ImportError: cannot import name choice
  15. unity3d-游戏实战突出重围,第三天 绘制数字
  16. wqCms6.0在IIS6的Getshell
  17. Async:简洁优雅的异步之道
  18. 云中树莓派(3):通过 AWS IoT 控制树莓派上的 Led
  19. list对象指针与指针类型list
  20. [Hook] 跨进程 Binder设计与实现 - 设计篇

热门文章

  1. SpringCloudGateway微服务网关实战与源码分析 - 中
  2. idea的使用技巧和必要的设置
  3. 分享一些小tips
  4. python jinjia2 高级
  5. python在执行命令时添加环境变量或指定执行路径
  6. Canal实时解析mysql binlog数据实战
  7. Java学习 (八)基础篇 运算符
  8. Apache DolphinScheduler 1.3.8 发布
  9. Luogu1527 [国家集训队]矩阵乘法 (整体二分)(Unfinished)
  10. Luogu2858[USACO06FEB]奶牛零食Treats for the Cows (区间DP)