简述

  • 基于之前的框架
  • 【Kaggle-MNIST之路】自定义程序结构(七)
  • 得分:0.9914
  • 排名:900+

代码

  • CNN.py 文件内容
import torch.nn as nn
import torchclass CNN(nn.Module):def __init__(self):super(CNN, self).__init__()self.N = 1self.layer1 = nn.Sequential(# (1, 28, 28)nn.Conv2d(in_channels=1,out_channels=32,kernel_size=3,  # 卷积filter, 移动块长stride=1,  # filter的每次移动步长),nn.ReLU(),nn.BatchNorm2d(32),nn.Conv2d(in_channels=32,out_channels=32,kernel_size=3,  # 卷积filter, 移动块长stride=1,  # filter的每次移动步长),nn.ReLU(),nn.BatchNorm2d(32),nn.Conv2d(in_channels=32,out_channels=32,kernel_size=5,  # 卷积filter, 移动块长stride=2,  # filter的每次移动步长padding=2,),nn.ReLU(),nn.BatchNorm2d(32),nn.Dropout(0.4),)self.layer2 = nn.Sequential(nn.Conv2d(in_channels=32,out_channels=64,kernel_size=3,  # 卷积filter, 移动块长stride=1,  # filter的每次移动步长),nn.ReLU(),nn.BatchNorm2d(64),nn.Conv2d(in_channels=64,out_channels=64,kernel_size=3,  # 卷积filter, 移动块长stride=1,  # filter的每次移动步长),nn.ReLU(),nn.BatchNorm2d(64),nn.Conv2d(in_channels=64,out_channels=64,kernel_size=5,  # 卷积filter, 移动块长stride=2,  # filter的每次移动步长padding=2,),nn.ReLU(),nn.BatchNorm2d(64),nn.Dropout(0.4),)self.layer3 = nn.Sequential(nn.Conv2d(in_channels=64,out_channels=128,kernel_size=4,  # 卷积filter, 移动块长stride=1,  # filter的每次移动步长),nn.ReLU(),nn.BatchNorm2d(128),)self.layer4 = nn.Linear(128 * self.N, 10)def forward(self, x):con = torch.Tensor()for i in range(self.N):temp = x.clone()temp = self.layer1(temp)temp = self.layer2(temp)temp = self.layer3(temp)con = torch.cat((con, temp), dim=1)  # 在dim=1上concatcon = con.view(con.size(0), -1)con = self.layer4(con)return con

【Kaggle-MNIST之路】CNN再添加一个层卷积(八)相关推荐

  1. 在学生信息结构体中再添加一个计算平均值和按照平均值排序以及删除指定学号的学生信息

    定义一个学生信息结构体,包含姓名,学号,语文成绩.数学成绩,和英语成绩,定义结构体数组存放不同学生的信息,可以在终端录入学生的信息,可以实现对于学生成绩的排序,排序可以按照语文.数学或者英语的任意一个 ...

  2. PostGIS之路--AddGeometryColumn函数--添加一个几何类型字段

    1.AddGeometryColumn 添加一个几何类型字段到已经存在的可用表中,默认情况下使用类型修饰符定义约束.该i函数实现版本较早,支持3D但不能删除z,也支持添加圆和曲面. 函数: text ...

  3. 【SSL】【Apache】在已经有域名的ssl证书上面再添加一个域名Godaddy

    主机:Godaddy 域名:Godaddy ssl证书:Godaddy 首先,在服务器上运行这么一句命令 openssl req -newkey rsa:2048 -nodes -keyout you ...

  4. outlook添加新账户服务器信息怎么填,outlook如何再添加一个新账户?

    1.打开outlook. 2.第一次打开,一般都会出现如下图所示的新建账号向导. 3.选中"是",点击下一步进入添加新店长邮件账号里面,选择第一项"pop3. Imap ...

  5. sql server2008如果表中已经有很多条记录,再添加一个非空字段

    alter table 表名 add 字段名 类型 not null default('') 转载于:https://www.cnblogs.com/deram/p/5880366.html

  6. python在子类中添加新的属性_pycharm实现在子类中添加一个父类没有的属性

    我就废话不多说了,还是直接看代码吧! class Car(): """一次模拟汽车的简单尝试""" def __init__(self, m ...

  7. html 图片上放置按钮,用CSS在图片上再加一个小按钮

    很简单的,嗯,就是要做成这样的: 用CSS,当然得用层了,就是在图片上再加一个层,用来放那个按钮,按钮又有两种方式可以放,一种是直接用图片img标签,一种是通过背景图片放上去.这里我们就用背景图片这个 ...

  8. 台式计算机怎么加一个硬盘,如何再安装一个台式计算机硬盘驱动器?如何在计算机安装中添加额外的硬盘...

    如果台式计算机的硬盘运行时间较长,它将存储大量数据. 长时间后,硬盘空间将不足. 更换计算机将花费大量金钱. 实际上,我们可以在计算机上添加额外的硬盘以增加硬盘空间并加快系统速度. 那么如何再安装一个 ...

  9. TensorFlow精进之路(三):两层卷积神经网络模型将MNIST未识别对的图片筛选出来

    1.概述 自从开了专栏<TensorFlow精进之路>关于对TensorFlow的整理思路更加清晰.上两篇讲到Softmax回归模型和两层卷积神经网络模型训练MNIST,虽然使用神经网络能 ...

最新文章

  1. 2022-2028年中国内衣用热熔胶膜行业发展现状调查及市场分析预测报告
  2. 【怎样写代码】确保对象的唯一性 -- 单例模式(五):一种更好的单例实现方法(静态内部类)
  3. houxiurong.com 关于Tomcat7部署 一台机器部署两个项目,一个用域名访问,一个用IP访问...
  4. 【嵌入式开发】ARM 代码搬移 ( ARM 启动流程 | 代码搬移 起点 终点 | 链接地址 | 汇编代码 )
  5. C#反射Assembly 具体说明
  6. 20155209 2016-2017-2 《Java程序设计》第五周学习总结
  7. 为iOS 项目引入其它开发包 的方法
  8. jar k8s 自己的 部署_微服务架构 - 离线部署k8s平台并部署测试实例
  9. 照片有灵异鬼影?伯克利 x 陈启峰培育高能FCN“除灵师” | CVPR论文
  10. ajax 传文件和参数,Ajax上传文件及携带参数
  11. JAVA 发送邮件功能
  12. MySQL5.5安装和navicat安装配置图解
  13. 读养生四要有感《慎动篇》
  14. 阿里云商标安心注册服务失败不通过可以退款?
  15. 画流程的软件 yEd 不错, 支持中
  16. Dubbo 报错 Data length too large
  17. 迷你音乐播放器v1.0正式上线!
  18. 史上最详细Mysql免安装版教程
  19. iOS开发之三大计时器(Timer、DispatchSourceTimer、CADisplayLink)
  20. 嵌入式的日常工作内容是什么?

热门文章

  1. WINCE6.0建立共享文件夹
  2. javaweb成长之路:struts2的探索(一)
  3. WinAPI: midiOutGetNumDevs - 获取 MIDI 输出设备的数目
  4. U盘打不开的解决方法
  5. 深入理解 Java内存模型
  6. java.net.inetaddress_java.net.InetAddress类的应用
  7. 判断一棵二叉树是否为搜索二叉树、完全二叉树、平衡二叉树(java)
  8. numpy and pandas
  9. [OpenCV] -- win7下配置OpenCV的Qt开发环境
  10. OpenGL SDK glew(OpenGL Extension Wrangler Library )