keras實現手寫字型識別

2021-09-24 03:47:20 字數 2153 閱讀 8636

losses損失函式

optimizers優化目標函式,比如sgd

datasets常用資料集,比如mnist

models序貫模型,比如sequential

layers神經網路中的層,比如全連線層dense

activations啟用函式

import keras # 匯入keras

from keras.datasets import mnist # 從keras中匯入mnist資料集

from keras.models import sequential # 匯入序貫模型

from keras.layers import dense # 匯入全連線層

from keras.optimizers import sgd # 匯入優化函式

print(x_train.shape,y_train.shape)

print(x_test.shape,y_test.shape)

import matplotlib.pyplot as plt # 匯入視覺化的包

im = plt.imshow(x_train[0],cmap='gray')

輸出結果: 60000張28*28的單通道灰度圖

輸出結果:第乙個訓練集的樣子,乙個手寫的數字5

x_train = x_train.reshape(60000,784) # 將攤平,變成向量

x_test = x_test.reshape(10000,784) # 對測試集進行同樣的處理

print(x_train.shape)

print(x_test.shape)

這裡直接將資料除以255

x_train = x_train / 255

x_test = x_test / 255

y_train = keras.utils.to_categorical(y_train,10)

y_test = keras.utils.to_categorical(y_test,10)

model = sequential() # 構建乙個空的序貫模型

# 新增神經網路層

model.add(dense(512,activation='relu',input_shape=(784,)))

model.add(dense(256,activation='relu'))

model.add(dense(10,activation='softmax'))

model.summary()

輸出結果:第一層和第二層用relu啟用函式輸出,第三層用softmax函式輸出

model.compile(optimizer=sgd(),loss='categorical_crossentropy',metrics=['accuracy'])
model.fit(x_train,y_train,batch_size=64,epochs=5,validation_data=(x_test,y_test)) # 此處直接將測試集用作了驗證集

score = model.evaluate(x_test,y_test)

print("loss:",score[0])

print("accu:",score[1])

輸出結果:精確度達到94%

用Keras進行手寫字型識別(MNIST資料集)

首先載入資料 from keras.datasets import mnist train images,train labels test images,test labels mnist.load data 接下來,看看這個資料集的基本情況 train images.shape 60000,28...

kaggle mnist手寫字型識別

現在的許多手寫字型識別 都是基於已有的mnist手寫字型資料集進行的,而kaggle需要用到 上給出的資料集並生成測試集的輸出用於提交。這裡選擇keras搭建卷積網路進行識別,可以直接生成測試集的結果,最終結果識別率大概97 左右的樣子。coding utf 8 created on tue jun...

深度學習 tensorflow識別手寫字型

我們依舊以mnist手寫字型資料集,來看看我們如何使用tensorflow來實現mlp。import tensorflow as tf import tensorflow.examples.tutorials.mnist.input data as input data mnist input da...