莫凡Python 2

kearsregressionpython

Classifier 分类

使用 mnist 数据集,这是0-9的图片数据,我们使用神经网络去识别这些图片。显示图片上的数据

本质上是使用神经网络去分类。

参考资料

https://morvanzhou.github.io/tutorials/machine-learning/keras/2-2-classifier/

数据预处理、熟悉数据

# -*- coding: utf-8 -*-
""" Classifier 分类 """
from keras.datasets import mnist
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
import matplotlib.pyplot as plt
# %% 数据处理、感受数据
(X_train, Y_train), (X_test, Y_test) = mnist.load_data() for num in range(50):
plt.imshow(X_train[num,:,:],cmap='Greys_r')
plt.axis('off')
plt.show()

图片显示

既然是图片数据集,我们可以通过显示图片来直接的了解这个数据集

X_train 是600002828 的矩阵,是一个灰度图像矩阵,6000张图片,图片大小为28*28

Y_trian 是 60000*1 的一维数组


数字5

数字9

数字3

关键

  • reshape()的使用

参考博客

数据处理

将图片数据变为 6000*784 的矩阵,也就是新矩阵的一行代表一幅图片 使用 reshape

将标签数据化为 one_hot 使用函数 np_utils.to_categorical

参考博客

模型搭建

导入的包

""" Classifier 分类 """
from keras.datasets import mnist
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import numpy as np
np.random.seed(1337) # for reproducibility
from keras.models import Sequential
from keras.layers import Dense, Activation
import matplotlib.pyplot as plt
from keras.utils import np_utils
from keras.optimizers import RMSprop

建立模型

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.0)

注意

Activation(‘softmax’) 其中softmax多用于分类问题,在是输出层中使用,输出一个类别的可能概率矩阵

RMSprop函数中:

  • lr 为学习率

参考连接

https://keras-cn.readthedocs.io/en/latest/legacy/other/optimizers/

编译模型

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

说明


关于metrics

训练模型

model.fit(X_train,Y_train,epochs=2,batch_size=32)

模型评估

loss,accuracy = model.evaluate(X_test,Y_test)

  • loss 误差 目标值 0
  • accuracy 准确率 目标值 100%

模型检验

主要通过model.predict() 函数,使用训练好的神经网络,输出对 测试集 中第一章图片 img_0的预测

X_predict = X_test[:10,:]
X_predict = X_predict.reshape(10,28,28)
plt.imshow(X_predict[0,:,:],cmap='Greys_r')
plt.axis('off')
plt.show()
img_0 = X_test[0,:].reshape(1,784)
result = np.argmax(model.predict(img_0))
print(result)

关键

model.predict() 返回值


enter description here

输出一个1*10的矩阵,分别对应图片上数字为0-9的可能性。

这张图片对应的数字的最大可能性,就是该矩阵最大值对饮的下标

获取array的最大值

参考

结果

图片为:



预测为:

莫凡Python之keras 2的更多相关文章

  1. How to Grid Search Hyperparameters for Deep Learning Models in Python With Keras

    Hyperparameter optimization is a big part of deep learning. The reason is that neural networks are n ...

  2. win7+cuda+anaconda python+tensorflow-gpu+keras安装成功版本匹配汇总

    win7+cuda+anaconda python+tensorflow-gpu+keras安装成功版本匹配汇总 2019-09-20 15:06:03 wyx100 阅读数 38更多 分类专栏: M ...

  3. 【Python】keras神经网络识别mnist

    上次用Matlab写过一个识别Mnist的神经网络,地址在:https://www.cnblogs.com/tiandsp/p/9042908.html 这次又用Keras做了一个差不多的,毕竟,现在 ...

  4. 在ubuntu安装python, theano, keras , Spearmint, Mongodb

    系统配置: Ubuntu 14 (其他系统也差不多如下操作) 1. 通过anaconda安装 python 地址: https://www.continuum.io/downloads#linux 2 ...

  5. win7上python+theano+keras安装

    https://blog.csdn.net/yongjiankuang/article/details/50485610 其实过程很简单,首先说一下安装条件: 1.win7 (32和64都可以,下载安 ...

  6. 【Python】keras使用LSTM拟合曲线

    keras生成的网络结构如下图: 代码如下: from sklearn.preprocessing import MinMaxScaler from keras.models import Seque ...

  7. 【Python】keras使用Lenet5识别mnist

    原始论文中的网络结构如下图: keras生成的网络结构如下图: 代码如下: import numpy as np from keras.preprocessing import image from ...

  8. 【Python】keras卷积神经网络识别mnist

    卷积神经网络的结构我随意设了一个. 结构大概是下面这个样子: 代码如下: import numpy as np from keras.preprocessing import image from k ...

  9. python tensorflow keras

    pip install tensorflow pip install keras pip install theano http://www.open-open.com/lib/view/open14 ...

  10. 好书推荐计划:Keras之父作品《Python 深度学习》

    大家好,我禅师的助理兼人工智能排版住手助手条子.可能非常多人都不知道我.由于我真的难得露面一次,天天给禅师做底层工作. wx_fmt=jpeg" alt="640? wx_fmt= ...

随机推荐

  1. vue.cli的安装配置

    关于旧版本 Vue CLI 的包名称由 vue-cli 改成了 @vue/cli. 如果你已经全局安装了旧版本的 vue-cli(1.x 或 2.x),你需要先通过 npm uninstall vue ...

  2. 前台主页功能-前台轮播图功能完成-git介绍和安装-git使用流程-git常用命令-git忽略文件

    目录 前台主页功能-前台轮播图功能完成-git介绍和安装-git使用流程-git常用命令-git忽略文件 昨日内容回顾 今日内容概要 今日内容详细 0 导出项目依赖 0 学长问题解析 1 前台主页功能 ...

  3. gopher必读文章

    Getting Started with Go Programminghttps://www.programiz.com/golang/getting-startedHow to Write Go C ...

  4. 00_k8s_learn

    10本 Kubernetes 学习书籍推荐 - 知乎 https://zhuanlan.zhihu.com/p/468291559 Helm 的安装使用 · 从 Docker 到 Kubernetes ...

  5. EMQX 在 Kubernetes 中如何进行优雅升级

    背景 为了降低 EMQX 在 Kubernetes 上的部署.运维成本,我们将一些日常运维能力进行总结.抽象并整合到代码中,以 EMQX Kubernetes Operator 的方式帮助用户实现 E ...

  6. unity VideoPlayer 视频静音

    standVideo.SetDirectAudioMute(0,true);

  7. windos下激活python虚拟环境

    1.从终端中找到解释器的目录 2.cd到Scripts,输入激活命令activate  这样就表示激活成功了

  8. oracle学习undo之事务槽和oracle的多种提交方式

    1.事务槽数量参数 每一个oracle数据块里面在数据块头部都有事务槽,事务槽的数量可以去查一下,如果数据库中的表T2: select INI_TRANS,MAX_TRANS from dba_tab ...

  9. Sup, inf convolution for convex functions

    Let $\Omega$ be a bounded convex domain in $\mathbb{R}^n$. $f:\Omega\rightarrow\mathbb{R}^n$. If $f$ ...

  10. k8s_namespace

    namespace 可以认为namespaces是kubernetes集群中的虚拟化集群.在Kubernetes集群可以拥有多个命名空间,它们在逻辑上彼此隔离. 多数的Kubernetes中的集群默认 ...