5.keras-Dropout剪枝操作的应用
keras-Dropout剪枝操作的应用
1.载入数据以及预处理
import numpy as np
from keras.datasets import mnist
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import *
from keras.optimizers import SGD import os import tensorflow as tf # 载入数据
(x_train,y_train),(x_test,y_test) = mnist.load_data() # 预处理
# 将(60000,28,28)转化为(600000,784),好输入展开层
x_train = x_train.reshape(x_train.shape[0],-1)/255.0
x_test= x_test.reshape(x_test.shape[0],-1)/255.0
# 将输出转化为one_hot编码
y_train = np_utils.to_categorical(y_train,num_classes=10)
y_test = np_utils.to_categorical(y_test,num_classes=10)
2.创建网络打印训练结果
# 创建网络
model = Sequential([
Dense(units=128,input_dim=784,bias_initializer='one',activation='tanh'),
# Dropout进行减枝,使得部分训练参数失效,避免过拟和
Dropout(0.4),
Dense(units=128,bias_initializer='one',activation='tanh'),
Dropout(0.4),
Dense(units=10,bias_initializer='one',activation='softmax')
])
# 编译
# 自定义优化器
sgd = SGD(lr=0.1) model.compile(optimizer=sgd,
# 运用交叉熵
loss='categorical_crossentropy',
metrics=['accuracy']) model.fit(x_train,y_train,batch_size=32,epochs=10,validation_split=0.2) # 评估模型
loss,acc = model.evaluate(x_test,y_test,)
print('\ntest loss',loss)
print('test acc',acc)
out:
Epoch 1/10
32/48000 [..............................] - ETA: 5:04 - loss: 2.7763 - acc: 0.1250
576/48000 [..............................] - ETA: 21s - loss: 2.6202 - acc: 0.1354
......
......
Epoch 10/10
47744/48000 [============================>.] - ETA: 0s - loss: 0.1830 - acc: 0.9448
48000/48000 [==============================] - 3s 72us/step - loss: 0.1831 - acc: 0.9449 - val_loss: 0.1210 - val_acc: 0.9649
32/10000 [..............................] - ETA: 0s
1824/10000 [====>.........................] - ETA: 0s
3616/10000 [=========>....................] - ETA: 0s
5472/10000 [===============>..............] - ETA: 0s
7456/10000 [=====================>........] - ETA: 0s
9440/10000 [===========================>..] - ETA: 0s
10000/10000 [==============================] - 0s 27us/step
test loss 0.11740412595644593
test acc 0.9652
5.keras-Dropout剪枝操作的应用的更多相关文章
- (四) Keras Dropout和正则化的使用
视频学习来源 https://www.bilibili.com/video/av40787141?from=search&seid=17003307842787199553 笔记 使用drop ...
- TensorFlow keras dropout层
# 建立神经网络模型 model = keras.Sequential([ keras.layers.Flatten(input_shape=(28, 28)), # 将输入数据的形状进行修改成神经网 ...
- keras搭建神经网络快速入门笔记
之前学习了tensorflow2.0的小伙伴可能会遇到一些问题,就是在读论文中的代码和一些实战项目往往使用keras+tensorflow1.0搭建, 所以本次和大家一起分享keras如何搭建神经网络 ...
- 【DeepLearning】深入理解dropout正则化
本文为转载,作者:Microstrong0305 来源:CSDN 原文:https://blog.csdn.net/program_developer/article/details/80737724 ...
- 深度学习中Dropout原理解析
1. Dropout简介 1.1 Dropout出现的原因 在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象. 在训练神经网络的时候经常会遇到过拟合的问题 ...
- Dropout原理解析
1. Dropout简介 1.1 Dropout出现的原因 在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象.在训练神经网络的时候经常会遇到过拟合的问题, ...
- Hebye 深度学习中Dropout原理解析
1. Dropout简介 1.1 Dropout出现的原因 在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象. 在训练神经网络的时候经常会遇到过拟合的问题 ...
- TensorFlow官方发布剪枝优化工具:参数减少80%,精度几乎不变
去年TensorFlow官方推出了模型优化工具,最多能将模型尺寸减小4倍,运行速度提高3倍. 最近现又有一款新工具加入模型优化"豪华套餐",这就是基于Keras的剪枝优化工具. 训 ...
- ACM 海贼王之伟大航路(深搜剪枝)
"我是要成为海贼王的男人!" 路飞他们伟大航路行程的起点是罗格镇,终点是拉夫德鲁(那里藏匿着"唯一的大秘宝"--ONE PIECE).而航程中间,则是各式各样的 ...
随机推荐
- JavaWeb学习之JSP(二) JSP标签
JSP常用标签 什么是JSP标签 JSP标签,有的地方也叫做JSP动作,在JSP中编写大量的java代码会使JSP页面显得杂乱无章,看起来非常不舒服,因此JSP提供了一些类似html的标签,通过这些标 ...
- .gitignore 模式匹配
匹配模式前使用 / 表示根目录 匹配模式后使用 / 代表是目录(不是文件) 匹配模式前加 ! 表示取反 * 代表任意个字符 ? 匹配任意一个字符 ** 匹配任意级目录
- ol,li,ul,dl,dt,dd
块级元素div尽量少用,其实和table一样,嵌套越少越好,它也是会影响速度的! ol 有序列表. <ol> <li>……</li> <li>……< ...
- BZOJ1009 矩阵快速幂+DP+KMP
Problem 1009. -- [HNOI2008]GT考试 1009: [HNOI2008]GT考试 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: ...
- Gym100548F Color
题目链接:https://vjudge.net/problem/Gym-100548F 题目大意: n 朵花,按顺序排成一排.从 m 种颜色中选出 k 种颜色,给这 n 朵花染色,要求相邻的花颜色不同 ...
- 一次 nginx 返回 302 问题解决
1.问题描述: 应用服务器通过post方式向nginx服务器发送http请求,返回 302 2.问题解决过程 2.1.查询nginx日志,开始以为302错误会在nginx的错误日志error.log, ...
- 安装依赖jdk---linux
1,下载JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2,使用XFTP ...
- shrio的springboot完整配置
package com.zys.sys.config; import java.util.HashMap; import java.util.Map; import javax.servlet.Fil ...
- Kivy中ActionBar控件的使用
这个控件可以作为导航栏来使用,效果非常好. 1. ActionBar包含的组件 ActionBar中需要一个ActionView作为容器来存放其他控件,比如:ActionPrevious.Action ...
- MySQL常用控制台指令
MySQL服务的启用与停止 MySQL服务的启用: net start mysql80 MySQL服务的停止: net stop mysql80 MySQL的登入与退出 数据库的登入: mysql - ...