python神经网络学习 使用Keras进行简单分类


Posted in Python onMay 04, 2022

学习前言

上一步讲了如何构建回归算法,这一次将怎么进行简单分类。

Keras中分类的重要函数

1、np_utils.to_categorical

np_utils.to_categorical用于将标签转化为形如(nb_samples, nb_classes)的二值序列。

假设num_classes = 10。

如将[1,2,3,……4]转化成:

[[0,1,0,0,0,0,0,0]
[0,0,1,0,0,0,0,0]
[0,0,0,1,0,0,0,0]
……
[0,0,0,0,1,0,0,0]]

这样的形态。

如将Y_train转化为二值序列,可以用如下方式:

Y_train = np_utils.to_categorical(Y_train,num_classes= 10)

2、Activation

Activation是激活函数,一般在每一层的输出使用。

当我们使用Sequential模型构建函数的时候,只需要在每一层Dense后面添加Activation就可以了。

Sequential函数也支持直接在参数中完成所有层的构建,使用方法如下。

model = Sequential([
    Dense(32,input_dim = 784),
    Activation("relu"),
    Dense(10),
    Activation("softmax")
    ]
)

其中两次Activation分别使用了relu函数和softmax函数。

3、metrics=[‘accuracy’]

在model.compile中添加metrics=[‘accuracy’]表示需要计算分类精确度,具体使用方式如下:

model.compile(
	loss = 'categorical_crossentropy',
	optimizer = rmsprop,
	metrics=['accuracy']
)

全部代码

这是一个简单的仅含有一个隐含层的神经网络,用于完成手写体识别。在本例中,使用的优化器是RMSprop,具体可以使用的优化器可以参照Keras中文文档

import numpy as np
from keras.models import Sequential
from keras.layers import Dense,Activation ## 全连接层
from keras.datasets import mnist
from keras.utils import np_utils
from keras.optimizers import RMSprop
# 获取训练集
(X_train,Y_train),(X_test,Y_test) = mnist.load_data()
# 首先进行标准化 
X_train = X_train.reshape(X_train.shape[0],-1)/255
X_test = X_test.reshape(X_test.shape[0],-1)/255
# 计算categorical_crossentropy需要对分类结果进行categorical
# 即需要将标签转化为形如(nb_samples, nb_classes)的二值序列
Y_train = np_utils.to_categorical(Y_train,num_classes= 10)
Y_test = np_utils.to_categorical(Y_test,num_classes= 10)
# 构建模型
model = Sequential([
    Dense(32,input_dim = 784),
    Activation("relu"),
    Dense(10),
    Activation("softmax")
    ]
)
rmsprop = RMSprop(lr = 0.001,rho = 0.9,epsilon = 1e-08,decay = 0)
## compile
model.compile(loss = 'categorical_crossentropy',optimizer = rmsprop,metrics=['accuracy'])
print("\ntraining")
cost = model.fit(X_train,Y_train,nb_epoch = 2,batch_size = 32)
print("\nTest")
cost,accuracy = model.evaluate(X_test,Y_test)
## W,b = model.layers[0].get_weights()
print("accuracy:",accuracy)

实验结果为:

Epoch 1/2
60000/60000 [==============================] - 12s 202us/step - loss: 0.3512 - acc: 0.9022
Epoch 2/2
60000/60000 [==============================] - 11s 183us/step - loss: 0.2037 - acc: 0.9419
Test
10000/10000 [==============================] - 1s 108us/step
accuracy: 0.9464

以上就是python神经网络学习使用Keras进行简单分类的详细内容!


Tags in this post...

Python 相关文章推荐
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
python简单实例训练(21~30)
Nov 15 Python
Python实现多条件筛选目标数据功能【测试可用】
Jun 13 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
PyCharm在新窗口打开项目的方法
Jan 17 Python
Python函数装饰器常见使用方法实例详解
Mar 30 Python
Python实现简单的列表冒泡排序和反转列表操作示例
Jul 10 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
Transpose 数组行列转置的限制方式
Feb 11 Python
Python文件操作基础流程解析
Mar 19 Python
Django权限设置及验证方式
May 13 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
Aug 17 Python
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
May 04 #Python
Python3使用Qt5来实现简易的五子棋小游戏
May 02 #Python
python开发制作好看的时钟效果
关于的python五子棋的算法
python开发人人对战的五子棋小游戏
python pygame 开发五子棋双人对弈
May 02 #Python
Python开发简易五子棋小游戏
May 02 #Python
You might like
用PHP和ACCESS写聊天室(八)
2006/10/09 PHP
学习php笔记 字符串处理
2010/10/19 PHP
php 字符串替换的方法
2012/01/10 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
joomla数据库操作示例代码
2016/01/06 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
js实现砖头在页面拖拉效果
2020/11/20 Javascript
ES6中数组array新增方法实例总结
2017/11/07 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
nodejs 生成和导出 word的实例代码
2018/07/31 NodeJs
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
2020/08/10 Javascript
[52:14]VG vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
Pytorch转tflite方式
2020/05/25 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
Probikekit日本:自行车套件,跑步和铁人三项装备
2017/04/03 全球购物
毕业生个人的求职信范文
2013/12/03 职场文书
学习保证书范文
2014/04/30 职场文书
卡特教练观后感
2015/06/08 职场文书
导游词之扬州大明寺
2019/10/09 职场文书