简述

【Kaggle-MNIST之路】两层的神经网络Pytorch(四行代码的模型)

基于我的上一篇文章改进。
其实就是把损失函数调整了一下。

从CrossEntroyLoss到MultiMarginLoss。

  • 得分:0.81
  • 排名:2609

代码

import pandas as pd
import torch.utils.data as data
import torch
import torch.nn as nnfile = './all/train.csv'
LR = 0.01class MNISTCSVDataset(data.Dataset):def __init__(self, csv_file, Train=True):self.dataframe = pd.read_csv(csv_file, iterator=True)self.Train = Traindef __len__(self):if self.Train:return 42000else:return 28000def __getitem__(self, idx):data = self.dataframe.get_chunk(100)ylabel = data['label'].as_matrix().astype('float')xdata = data.ix[:, 1:].as_matrix().astype('float')return ylabel, xdatamydataset = MNISTCSVDataset(file)train_loader = torch.utils.data.DataLoader(mydataset, batch_size=1, shuffle=True)net = nn.Sequential(nn.Linear(28 * 28, 100),nn.ReLU(),nn.Linear(100, 10)
)loss_function = nn.MultiMarginLoss()
optimizer = torch.optim.Adam(net.parameters(), lr=LR)
for step, (yl, xd) in enumerate(train_loader):output = net(xd.squeeze().float())yl = yl.long()loss = loss_function(output, yl.squeeze())optimizer.zero_grad()loss.backward()optimizer.step()if step % 20 == 0:print('step %d' % step, loss)torch.save(net, 'divided-net.pkl')

【Kaggle-MNIST之路】两层的神经网络Pytorch(改进版)(二)相关推荐

  1. 【Kaggle-MNIST之路】两层的神经网络Pytorch(四行代码的模型)

    简述 第一次学习Kaggle.按照之前的要求,先搞个简单的版本来慢慢完善. 所以,第一次的版本特别烂(hhhh). 任务描述 对mnist数据集进行贴标签.(给图片数据(向量),输出对应的标签.) 得 ...

  2. TensorFlow精进之路(七):关于两层卷积神经网络对CIFAR-10图像的识别

    1.概述 在前面已经对官方的CIFAR10图像识别模块进行分析,但如果只做到这一步感觉还是不够,没能做到举一反三以及对之前学的知识的巩固,所以这一节,我打算结合之前学的双层卷积神经网络自己写一个dem ...

  3. 神经网络 pytorch 分类二维矩阵图像和一维向量的方法

    在网上找资料的过程中,发现并没有特别细致的讲解分类图像和分类一维向量的做法,导致我捅咕了有几天才弄明白,可能使我比较菜吧......现在在这里记录一下. 首先需要明确,前文我们已经讲解了包装数据集的方 ...

  4. tensorflow 进阶(三),BP神经网络之两层hidden_layer

    本文与上一篇文章有一点不同,就是中间的隐藏层由一层变成两层,在神经网络搭建的过程中,曾出现一点问题,就是正确率图突然变成0.11,通过调整隐藏节点的数量和W2的初值,正确率达到0.97,不如只有一层神 ...

  5. 吴恩达机器学习笔记——含一个隐藏层的神经网络

    含一个隐藏层的神经网络 含一个隐藏层的神经网络构造如下图所示: 其中记号用a上标的方括号a[n]a^{[n]}a[n]代表是第n层的a,用下标表示是某一层下面的某一个神经元,如图中的a1[2]a^{[ ...

  6. C语言中阶第四篇:分支与循环语句练习,求阶乘的多种方法(两层for循环求阶乘)、二分查找、字符串汇聚以及模拟用户登录

    业精于勤荒于嬉,行成于思毁于随. 今天就来综合的联系一下前面的知识. 第十篇 一.for语句,两种方法计算阶乘 1.1.一层for循环求阶乘 1.2.实现阶乘累和 1.3.两层for循环求阶乘 二.i ...

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

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

  8. Lesson 11.1-11.5 梯度下降的两个关键问题反向传播的原理走出第一步:动量法开始迭代:batch和epochs在Fashion—MNIST数据集熵实现完整的神经网络

    在之前的课程中,我们已经完成了从0建立深层神经网络,并介绍了各类神经网络所使用的损失函数.本节课开始,我们将以分类深层神经网络为例,为大家展示神经网络的学习和训练过程.在介绍PyTorch的基本工具A ...

  9. 二隐层的神经网络实现MNIST数据集分类

    二隐层的神经网络实现MNIST数据集分类 传统的人工神经网络包含三部分,输入层.隐藏层和输出层.对于一个神经网络模型的确定需要考虑以下几个方面: 隐藏层的层数以及各层的神经元数量 各层激活函数的选择 ...

最新文章

  1. 由浅入深剖析.htaccess
  2. SNMP AGENT函数介绍
  3. 你是否能判断电机损毁风险?
  4. python公司大部分编码风格_Python编码风格篇:比较运算符-阿里云开发者社区
  5. 20172317 2018-2019-1 《程序设计与数据结构》 第五周学习总结
  6. 网络:常见的端口号及分类
  7. 看病(信息学奥赛一本通-T1371)
  8. 山师计算机学硕分数线,2020山东师范大学考研复试分数线已公布
  9. $ is not defined 如何解决
  10. java中操作时间的常用工具类
  11. 如何使用模板生成多个页面_Divi不再只是页面构建器。 使用主题生成器,可以完全设计整个网站。...
  12. Ubnutu_vim配置YouCompleteMe
  13. 茆诗松等《高等数理统计(第二版)》例 1.28 的错误及改正
  14. 天津市高分二号卫星影像获取/高分一号卫星影像
  15. 英语四六级网站服务器繁忙,英语四六级成绩公布这些问题很常见
  16. 区分 J2SE 和 J2EE
  17. NOI Online #2入门组
  18. 【智能安全车载中控系统】(一)概览
  19. jquery 遍历java对象_jquery中object对象循环遍历的方法
  20. uni-app图片上传(位置固定)

热门文章

  1. Android开发概要记录
  2. 并不是所有的程序员都适合做技术管理
  3. python 线程死锁_python线程死锁与递归锁
  4. MapReduce01
  5. MATLAB - 为什么imshow(g,[])可以正常显示,而imshow(g)却显示空白图像?
  6. 利用 Android Studio 和 Gradle 打包多版本APK
  7. Oracle多个服务各代表什么作用(转)
  8. 【CF 应用开发大赛】JEECG 基于代码生成器J2EE智能开发框架
  9. Ajax 开发中遇到的乱码问题
  10. 使用协同过滤进行众包服务的工人工作自动化推荐