from keras import backend as k
import numpy as np
import tensorflow as tf
import matplotlib.image as mpimg
import cv2
from os.path import splitext
from os import listdir
from glob import glob
from pil import image
from keras.datasets import mnist
from keras import models
from keras import layers
from keras.utils import to_categorical
#載入資料集
(train_images,train_labels)
,(test_images,test_labels)
=mnist.load_data();
#搭建網路
network=models.sequential(
)network.add(layers.dense(
512,activation=
'relu'
,input_shape=(28
*28,)
))network.add(layers.dense(
10,activation=
'softmax'))
#配置網路
network.
compile
(optimizer=
'rmsprop'
,loss=
'categorical_crossentropy'
,metrics=
['acc'])
#資料預處理
train_images=train_images.reshape(
(60000,28
*28))
train_images=train_images.astype(
'float32')/
255test_images=test_images.reshape(
(10000,28
*28))
test_images=test_images.astype(
'float32')/
255train_labels=to_categorical(train_labels)
test_labels=to_categorical(test_labels)
#訓練network.fit(train_images,train_labels,epochs=
5,batch_size=
128)
#測試test_loss,test_acc=network.evaluate(test_images,test_labels)
print
('test_accuary:'
,test_acc)
控制台輸出:
在訓練集上的準確率為98.9%
在測試集上的準確率為97.8%
訓練精度與測試精度之間的差距是過擬合造成的
神經網路 卷積神經網路
這篇卷積神經網路是前面介紹的多層神經網路的進一步深入,它將深度學習的思想引入到了神經網路當中,通過卷積運算來由淺入深的提取影象的不同層次的特徵,而利用神經網路的訓練過程讓整個網路自動調節卷積核的引數,從而無監督的產生了最適合的分類特徵。這個概括可能有點抽象,我盡量在下面描述細緻一些,但如果要更深入了...
神經網路 卷積神經網路
1.卷積神經網路概覽 來自吳恩達課上一張,通過對應位置相乘求和,我們從左邊矩陣得到了右邊矩陣,邊緣是白色寬條,當畫素大一些時候,邊緣就會變細。觀察卷積核,左邊一列權重高,右邊一列權重低。輸入,左邊的部分明亮,右邊的部分灰暗。這個學到的邊緣是權重大的寬條 都是30 表示是由亮向暗過渡,下面這個圖左邊暗...
神經網路簡介 多層神經網路
如上圖所示,該神經網路有三層。我們標記第一層 也就是輸入層 為a 1 第一層與第二層連線權重為w 1 然後第一層輸入與第一層權重的線性和為z 1 第一層神經元個數為n 1 並依次標記剩餘網路層。可以看出,存在 z l j i 1 n l a l i w l i,j a l w l j a l 1 f...