mnist

【Keras-CNN】MNIST

点点圈 提交于 2019-12-05 08:50:34
文章目录 1 Data preprocessing 2 Build Model 2.1 Cross-correlation VS Convolution(★★★★★) 2.2 Max-pooling 2.3 参数量计算 3 Training process 4 可视化训练过程 5 评估模型的precision 6 Predict 7 可视化预测结果 8 Confusion Matrix 连载系列 《TensorFlow+Keras》Learning notes 本文用 Convolutional Neural Network(CNN)进行MNIST识别,CNN由Yann LeCun 提出,与MLP的区别在于,前面用卷积进行了特征提取,后面全连接层和Multilayer Perceptron(MLP)一样,MLP的demo可以查看这篇博客 【Keras-MLP】MNIST ,本文的套路都是基于这篇博客的 1 Data preprocessing from keras . datasets import mnist from keras . utils import np_utils import numpy as np np . random . seed ( 10 ) ( x_Train , y_Train ) , ( x_Test , y_Test ) = mnist .

tensorflow 神经网络基本使用

僤鯓⒐⒋嵵緔 提交于 2019-12-05 08:49:26
TF使用ANN(artificial neural network) 简介 受到生物神经网络的启发 发展历史 生物神经网络单元 逻辑运算单元:and、or、xor等运算 感知机(perceptron): h w ( x ) = s t e p ( w T ⋅ x ) //--> 多层感知机和反向传播(multi-perceptron and backpropagation) perceptron sklearn中也有感知机的库,其参数学习规则是 w n e x t s t e p i , j = w i , j + η ( y ^ j − y j ) x i //--> 其中 η //--> 是学习率 感知机与SGD很类似 逻辑斯蒂回归可以给出样本对于每一类的分类概率,而感知机则是直接根据阈值给出分类结果,因此一般在分类时,逻辑斯蒂回归相对感知机来说会常用一点 感知机是线性的,难以解决非线性问题;但是如果采用多个感知机,则可以避免这个问题 多层感知机和反向传播 感知机的激活函数是step函数,得到的结果非0即1,无法用于反向传播(需要求取微分),因此利用Logistic函数 σ ( z ) = 1 / ( 1 + e x p ( − z ) ) //--> 替代之前的step函数,这个logistic函数也被称为 激活函数 常用的激活函数有 logistic函数 双曲正切函数: t

TensorFlow 学习笔记

五迷三道 提交于 2019-12-05 08:48:05
TensorFlow是一个Google开源的深度学习框架。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。以下内容是基于Udacity深度学习课程的学习笔记。 安装TensorFlow 利用Conda来安装TensorFlow,需要安装一个TensorFlow环境和所需要的包。 OSX或Linux conda create -n tensorflow python = 3.5 source activate tensorflow conda install pandas matplotlib jupyter notebook scipy scikit -learn conda install -c conda -forge tensorflow Windows conda create -n tensorflow python = 3.5 activate tensorflow conda install pandas matplotlib jupyter notebook scipy scikit -learn conda install -c conda -forge tensorflow

keras mnist cnn example

橙三吉。 提交于 2019-12-05 08:47:52
# encoding:utf-8 from __future__ import print_function import keras from keras.datasets import mnist from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten from keras.layers import Conv2D, MaxPooling2D from keras import backend as K # batch_size 太小会导致训练慢,过拟合等问题,太大会导致欠拟合。所以要适当选择 batch_size = 128 # 0-9手写数字一个有10个类别 num_classes = 10 # 12次完整迭代,差不多够了 epochs = 2 # input image dimensions# 输入的图片是28*28像素的灰度图 img_rows, img_cols = 28 , 28 # the data, shuffled and split between train and test sets (x_train, y_train), (x_test, y_test) = mnist.load_data() # keras输入数据有两种格式

Keras-2 Keras Mnist

怎甘沉沦 提交于 2019-12-05 08:47:19
Keras Mnist 在这里,我们将利用Keras搭建一个深度学习网络对mnist数据集进行识别。 本文参考 keras-mnist-tutorial 整个代码分为三个部分: 数据准备 模型搭建 训练优化 让我们开始吧 首先先导入一些模块 %matplotlib inline import numpy as np import matplotlib.pyplot as plt from keras.datasets import mnist from keras.models import Sequential from keras.layers.core import Dense, Activation, Dropout from keras.utils import np_utils 数据准备 我们通过keras自带的数据集mnist进行导入数据,然后对其归一化处理,并且将原二维数据变成一维数据,作为网络的输入。 读入mnist数据集。可以看到每条样本是一个28*28的矩阵,共有60000个训练数据,10000个测试数据。 (X_train, y_train), (X_test, y_test) = mnist.load_data(); print(x_train.shape) print(x_test.shape) (60000, 28, 28) (10000, 28,

keras mnist

折月煮酒 提交于 2019-12-05 08:47:02
没啥说的,直接上代码 from __future__ import print_function import keras from keras.datasets import mnist from keras.models import Sequential from keras.layers import Dense, Dropout from keras.optimizers import RMSprop from keras.utils import multi_gpu_model from keras.layers import Input,Conv2D, MaxPooling2D,Flatten,Dense,Embedding,Lambda,AveragePooling2D from keras.models import Model import time import os import tensorflow as tf import keras.backend.tensorflow_backend as KTF #config = tf.ConfigProto() #config.gpu_options.per_process_gpu_memory_fraction = 0.6 # 每个GPU控制在60%以内 #session = tf.Session

keras例子之Mnist案例

时间秒杀一切 提交于 2019-12-05 08:46:26
#-*- coding: utf-8 -*- """ mnist识别例子,使用卷积神经网络 """ import os import sys import time import numpy as np from keras.datasets import mnist from keras.optimizers import SGD,RMSprop from keras.utils import np_utils from keras.models import Sequential import keras.backend as K from keras.models import load_model from numpy import newaxis import matplotlib.pyplot as plt from keras.layers import Dense,Activation,Dropout,Conv2D,Flatten,MaxPool2D,Input,Conv1D np.random.seed( 1337 ) reload(sys) sys.setdefaultencoding( 'utf-8' ) def loadMnistData () : (x_train,y_train),(x_test,y_test)=mnist.load_data() x

Keras框架神经网络算法训练MNIST分类准确率(实验)

匆匆过客 提交于 2019-12-05 08:45:38
MNIST数据集信息参考: http://yann.lecun.com/exdb/mnist/index.html MNIST是手写数字0~10图片数据集,每一张图片包含28*28个像素。 MNIST训练数据集 包含:(1.)60000张图片的像素信息,因为 神经网络的输入层表示特征的维度 ,所以将图像表示成一个[60000,28,28]的pixel张量;(2.)60000张图片的标签信息,表示成一个[60000,10]的矩阵,因为图片的标签是介于0-9的数字,把标签分为10类进行one-hot编码(一个one-hot向量除了某一位数字是1以外,其余维度数字都是0),比如标签0将表示为([1,0,0,0,0,0,0,0,0,0])。 MNIST测试数据集 包含10000张图片的像素信息,同训练数据集一样,将这10000张图片的像素信息,表示成一个[10000,28,28]的张量,将10000张图片的标签表示成[10000,10]的矩阵。 此外,还需要把每张图片的像素信息转化成向量形式,即将[28,28]的矩阵按行拉平成[1,784]的向量,即把数据集转成 [60000, 784]才能放到网络中训练。 第一个维度数字用来索引图片,第二个维度数字用来索引每张图片中的像素点。 一般还需要把图片中的像素数组归一化为0-1之间。 1. 修改模型编译compile信息 import numpy

keras学习实例(二):mnist 手写体分类

放肆的年华 提交于 2019-12-05 08:45:29
承接上次笔记,这次进行mnist 的手写体目标识别实例,先说明一下出现的问题。 如上图,源程序类似keras的mnist_example实例,数据源是通过 url = https://s3.amazonaws.com/img-datasets/mnist.npz 进行下载的。 访问该 url 地址被墙了 ,导致 MNIST 相关的案例都卡在数据下载的环节。 所以小编选择事先下载好mnist的数据集,然后修改程序,直接调用本地的数据集。这里给出一个博主给的链接,可以下载mnist.npz 数据集: 下载链接: https://pan.baidu.com/s/1jH6uFFC 密码: dw3d 程序如下: #-*- coding: UTF-8 -*- """ To know more or get code samples, please visit my website: https://morvanzhou.github.io/tutorials/ Or search: 莫烦Python Thank you for supporting! """ # please note, all tutorial code are running under python3.5. # If you use the version like python2.7, please modify

Keras实现MNIST分类

自闭症网瘾萝莉.ら 提交于 2019-12-05 08:45:18
  仅仅为了学习Keras的使用,使用一个四层的全连接网络对MNIST数据集进行分类,网络模型各层结点数为:784: 256: 128 : 10;   使用整体数据集的75%作为训练集,25%作为测试集,最终在测试集上的正确率也就只能达到92%,太低了: precision recall f1-score support 0.0 0.95 0.96 0.96 1721 1.0 0.95 0.97 0.96 1983 2.0 0.91 0.90 0.91 1793 3.0 0.91 0.88 0.89 1833 4.0 0.92 0.93 0.92 1689 5.0 0.87 0.86 0.87 1598 6.0 0.92 0.95 0.94 1699 7.0 0.94 0.93 0.93 1817 8.0 0.89 0.87 0.88 1721 9.0 0.89 0.90 0.89 1646 micro avg 0.92 0.92 0.92 17500 macro avg 0.91 0.92 0.91 17500 weighted avg 0.92 0.92 0.92 17500 训练过程中,损失和正确率曲线: 上面使用的优化方法是SGD,下面在保持所有参数不变的情况下,使用RMSpro进行优化,最后的结果看起来好了不少啊达到98%: precision recall f1