压缩神经网络 实验记录(剪枝 + rebirth + mobilenet)

本文记录了一次压缩神经网络的实验过程,包括原始网络、剪枝、rebirth和MobileNet的实施。实验显示剪枝和rebirth能有效减小模型大小和提高预测速度,但MobileNet训练难度高,模型大小甚至增加。
摘要由CSDN通过智能技术生成

实验内容

  1. 设计一个原始的神经网络。记录其运行时间和模型大小和准确率。
  2. 对该网络进行剪枝操作,记录其运行时间和模型大小和准确率。
  3. 对剪枝后的几个网络分别分部做rebirth,记录其运行时间和模型大小和准确率。
  4. 对所有之前涉及的网络做mobile net 。记录其运行时间和模型大小和准确率。

实验基础

  1. 原始神经网络的架构 (被舍弃)如下:
    神经网络结构图
    经过测试,以上的神经网络的架构训练网络很难,原始模型在训练10epoch后准确率才超过50%,后面根据该模型改写的mobile net 根本就没法训练了,正确率始终是10%左右,这根瞎猜没区别了。

  2. 更换神经网络架构,后来还是采用了之前用的架构,如下:
    修改后的模型架构图
    虽然直接跟换以后解决了上面模型的问题,但这个问题,我不是很能想明白,前面的网络的最前面的并行网络的设计,我是参照GoogLeNet设计的,为什么效果这么差。后来通过

  3. 数据集 :mnist手写数字的数据集。

实验详情记录

训练难度对比
  1. 原始网络 的准确度曲线如下,我们可以看到不到2K 步,正确率就基本在0.9几了。
    原始网络训练过程
  2. mobile net 的准确度曲线如下,我们可以看到前期准确度一直很低很低,知道6k 步以后才慢慢上升,直到10k以后才达到90%多。
    mobilenet训练过程
    对比以上两个网络,我们可以明显的看出,经过使用mobile net 改造后的网络训练难度明显很高,我的电脑跑得很慢,我前期差点就要放弃了。

训练准确度,时间,模型大小

实验步骤与数据
1. 先训练具有上面架构的原始模型t001.pb,记录模型的大小,预测速度,和准确度。
2. 对原始模型进行迭代剪枝7轮,得到t101.pb,t102.pb,…t107.pb七个模型。分别记录模型的大小,预测速度,和准确度。(conv2,conv3,fc1,表示对应层的输出)
剪枝
3.对原始模型和剪枝后的模型进行rebirth,由于rebirth后的模型大小不变,主要记录其速度和准确度。(时间1和时间2,只是进行了分别跑了两次,记录下来的,可以证明预测速度受电脑状态的影响还是有点大)
rebirth
4. 对前面rebirth 后的模型再进行剪枝。(使用前面rebirth后的结果进行剪枝,比如 t501 对应t401、t502对应t402)
这里写图片描述
5. 根据原始模型t001.pb和剪枝一次后的模型t101.pb分别构建对应的mobile net 模型t201.pb(原始模型) 和 201.pb(剪枝一次后的模型)。
mobile数据
实验结果分析
1. 剪枝对于缩小模型大小和加快速度都有很好的效果。
2. rebirth在加快速度方面有很好的效果。
3. 将 剪枝 和rebirth 结合起来,反复迭代,可以得到一个很小,速度很快,准确度也不受影响的模型。
4. mobile net 可以加快速度,但训练难度较大。
遗留问题
1, mobile net得到的模型的大小,反而比之前的大了。(这有可能是我的代码写得有问题,我的mobile net 部分的代码如下,希望有人能帮忙指出问题。)
代码中主要是使用depseparable_conv3v3函数代替了之前的卷积函数,以实现mobilenet的结构。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import tensorflow as tf
import
  • 4
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值