PyTorch实战Kaggle之Dogs vs. Cats

  • 目录
    • 1. 导包
    • 2. 数据载入及装载
    • 3. 数据预览
      • 1)获取一个批次的数据
      • 2)验证独热编码的对应关系
      • 3)图片预览
    • 4. 模型搭建
    • 5. 损失函数、优化函数定义
    • 6. 模型训练和参数优化
      • 出错
      • 输出结果
      • 存疑

目录

1. 导包

import torch
from torch.autograd import Variable
import torchvision
from torchvision import datasets, transforms
import os
import matplotlib.pyplot as plt
import time%matplotlib inline
  • torch:定义了许多与神经网络相关的类、函数;
  • torch.autograd:完成神经网络后向传播中的链式求导;
  • Variable:torch.autograd包中的一个类,将Tensor数据类型变量封装成Variable对象,使得程序能够应用自动梯度的功能;
  • torchvision:实现数据的处理、导入和预览等;
  • datasets:数据导入;
  • transforms:数据处理;
  • os:集成了一些对文件路径和目录进行操作的类;
  • matplotlib:绘图;
  • time:主要是一些和时间相关的类。

2. 数据载入及装载

  • 数据
    这个数据集的训练数据集中一共有25000张猫和狗的图片,其中猫、狗各12500张。在测试数据集中有12500张图片,其中猫、狗图片无序混杂,且无对应的标签。
    官方网站:https://www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition/data
    百度云网盘
    链接:https://pan.baidu.com/s/1ZfjfBCRjTU4Q1j5ST-k8wQ
    提取码:913v
  • 数据分类存放
    在获取全部数据集之后,我们需要对这些数据进行一个简单分类,将测试数据集中的数据分出一部分用作验证集,完成文件的分类之后再运行程序。文件层次结构及存放的数据量如下图所示:
  • 载入:可理解为对图片的处理
  • 装载:可理解为将图片打包好送给模型进行训练
data_dir = './data/DogsVSCats'
# 定义要对数据进行的处理
data_transform = {x: transforms.Compose([transforms.Resize([64, 64]),transforms.ToTensor()])for x in ["train", "valid"]}
# 数据载入
image_datasets = {x: datasets.ImageFolder(root=os.path.join(data_dir, x), transform=data_transform[x])for x in ["train", "valid"]}
# 数据装载
dataloader = {x: torch.utils.data.DataLoader(dataset=image_datasets[x], batch_size=16,shuffle=True)for x in ["train", "valid"]}

注:在以上代码中数据的变换和导入都采用了字典的形式,这是因为我们需要分别对训练数据集和验证数据集的数据载入方法进行简单定义,使用字典可以简化代码,也方便之后进行相应的调用和操作。

3. 数据预览

PyTorch实战Kaggle之Dogs vs. Cats相关推荐

  1. 超详解pytorch实战Kaggle比赛:房价预测

    详解pytorch实战Kaggle比赛:房价预测 教程名称 教程地址 机器学习/深度学习 [李宏毅]机器学习/深度学习国语教程(双语字幕) 生成对抗网络 [李宏毅]生成对抗网络国语教程(双语字幕) 目 ...

  2. 深度学习+pytorch实战Kaggle比赛(一)——房价预测

    参考书籍<动手学深度学习(pytorch版),参考网址为: https://zh-v2.d2l.ai/chapter_multilayer-perceptrons/kaggle-house-pr ...

  3. kaggle之Dogs vs. Cats(Keras)

    数据宏观把握--->数据预处理--->导出特征向量--->载入特征向量--->构建模型--->训练模型--->预测测试集 一.数据宏观把握 训练集25000张,猫狗 ...

  4. CNN入门+猫狗大战(Dogs vs. Cats)+PyTorch入门

    一些修改(修改后的代码) 修改原网络的输出方式.原网络采用的交叉熵torch.nn.CrossEntropyLoss()进行Loss计算,而这个函数内部是已经进行了softmax处理的(参考),所以网 ...

  5. 沐神《动手学深度实战Kaggle比赛:狗的品种识别(ImageNet Dogs)

    沐神<动手学深度学习>飞桨版课程公开啦! hello各位飞桨的开发者,大家好!李沐老师的<动手学深度学习>飞桨版课程已经公开啦.本课程由PPSIG和飞桨工程师共同建设,将原书中 ...

  6. (!详解 Pytorch实战:①)kaggle猫狗数据集二分类:加载(集成/自定义)数据集

    这系列的文章是我对Pytorch入门之后的一个总结,特别是对数据集生成加载这一块加强学习 另外,这里有一些比较常用的数据集,大家可以进行下载: 需要注意的是,本篇文章使用的PyTorch的版本是v0. ...

  7. 【深度学习】实战Kaggle竞赛之线性模型解决波士顿房价预测问题(Pytorch)

    [深度学习]实战Kaggle竞赛之线性模型解决波士顿房价预测问题 文章目录 1 概述1.1 Competition Description1.2 Practice Skills 2 数据处理 3 训练 ...

  8. Pytorch实战第一步--用经典神经网络实现猫狗大战

    文章目录 前言 一.猫狗大战数据集 二.pytorch实战 1.程序整体结构 2.读入数据 3.网络结构 4.网络结构 5测试 总结 总结 前言 随着人工智能的不断发展,机器学习这门技术也越来越重要, ...

  9. PyTorch实战福利从入门到精通之九——数据处理

    在解决深度学习问题的过程中,往往需要花费大量的精力去处理数据,包括图像.文本.语音或其它二进制数据等.数据的处理对训练神经网络来说十分重要,良好的数据处理不仅会加速模型训练,更会提高模型效果.考虑到这 ...

最新文章

  1. Mui.ajax请求服务器正确返回json数据格式
  2. 关于云计算 你所知道的可能不是真的
  3. 存储服务器配置型号,存储服务器配置要求指什么
  4. 在虚拟机中安装gentoo简化步骤(基于官方手册)
  5. 与年轻人“玩在一起”的QQ音乐,正抢跑音娱赛道?
  6. 小程序 页面禁止左右上下滑动
  7. 把java复制到e_编写一个程序,将e:\java目录下的所有.java文件复制到e:\jad目录下...
  8. server.xml解析
  9. PAYPAL 支付,sandbox测试的时候遇到异常:请求被中止: 未能创建 SSL/TLS 安全通道,以及解决方法。
  10. Prometheus 监控 nginx
  11. linux批量创建ftp用户密码,批量在LINUX下建立很多FTP用户
  12. 推荐几个设计师常去的优秀素材网站!收藏好哦!
  13. AgileEAS.NET SOA 中间件/敏捷软件开发平台
  14. 职称计算机考试相当于几级,全国职称计算机考试与全国计算机等级考试有什么不同?...
  15. HRSaaS系统和ERP系统有什么区别?
  16. 手机拍照技巧(一:校园拍摄)
  17. C++循环输出M * N 的螺旋矩阵
  18. 获取mumu模拟器日志
  19. 国内优秀的免费素材网站大比拼
  20. HTML微信单页引流项目源码模板分享

热门文章

  1. 夜夜除非,好梦留人睡
  2. 常州一院有全消化道的机器人的_“奇奇”再立新功,常州一院胸外科团队跻身全国TOP榜单...
  3. 蓝凌(Landray)OA漏洞常见RCE
  4. 你是如何确保自己 Mac 安全?
  5. OpenGL: Colorful Line(CR)
  6. 9-2、gets和puts
  7. Baklib电子产品手册制作,简单且实用
  8. java migrate_migrate4j:基于java的数据库迁移工具
  9. 53 jQuery-使用fadeTo()方法改变图片透明度
  10. 《周末画报》读书笔记