CNN 图像分类

CNN实现对FashionMNIST图像分类

卷积神经网络相对于全连接神经网络的优势:

  1. 参数少 -> 权值共享
    因为全连接神经网络输入的图片像素较大, 所以参数较多
    而卷积神经网络的参数主要在于核上, 而且核的参数可以共享给其他通道
  2. 全连接神经网络会将输入的图片拉直, 这样就会使图片损失原来的效果,从而导致效果不佳
    而卷积神经网络不会将图片拉直,用步长去移动核
  3. 可以手动选取特征,训练好权重,特征分类效果比全连接神经网络的效果好
CNN过程: 在这里插入图片描述

conolution层: 实现对feature map局部采样(相似于感受野)
pooling层: 增加感受野
dense层: 也就是全连接层

大概思路

  1. 加载数据集
  2. 构建CNN模型
  3. 训练函数
  4. 训练模型
  5. 可视化效果

使用pytorch实现CNN

使用的是Fashimnist数据集, 和以前的线性回归加载数据集的方式一样

日常导入需要用到的python库

import torch
import torch.nn as nn
import torch.optim as optim
import torch.functional as F
import torchvision
import torchvision.transforms as transforms
import numpy as np

import matplotlib.pyplot as plt
加载数据集

与线性回归一样, 就不再阐述

# 加载数据集
train_data = torchvision.datasets.FashionMNIST("/home/kesci/input/FashionMNIST2065",
                train=True,
                transform=transforms.ToTensor(),
                download=False)
                
test_data = torchvision.datasets.FashionMNIST("/home/kesci/input/FashionMNIST2065",
                train=False,
                transform=transforms.ToTensor(),
                download=False)

# 批量加载数据
train_iter = torch.utils.data.DataLoader(train_data, batch_size=64,
                shuffle=True,
                num_workers=4)
test_iter = torch.utils.data.DataLoader(train_data, batch_size=64,
                shuffle=False,
                num_workers=<
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值