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