机器学习-MNIST数据集-神经网络
生活随笔
收集整理的這篇文章主要介紹了
机器学习-MNIST数据集-神经网络
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 #設(shè)置隨機(jī)種子
2 seed = 7
3 numpy.random.seed(seed)
4
5 #加載數(shù)據(jù)
6 (X_train,y_train),(X_test,y_test) = mnist.load_data()
7 #print(X_train.shape[0])
8
9 #數(shù)據(jù)集是3維的向量(instance length,width,height).對于多層感知機(jī),模型的輸入是二維的向量,因此這里需要將數(shù)據(jù)集reshape,即將28*28的向量轉(zhuǎn)成784長度的數(shù)組。可以用numpy的reshape函數(shù)輕松實(shí)現(xiàn)這個過程。
10 num_pixels = X_train.shape[1] * X_train.shape[2]
11 X_train = X_train.reshape(X_train.shape[0],num_pixels).astype('float32')
12 X_test = X_test.reshape(X_test.shape[0],num_pixels).astype('float32')
13
14 #給定的像素的灰度值在0-255,為了使模型的訓(xùn)練效果更好,通常將數(shù)值歸一化映射到0-1
15 X_train = X_train / 255
16 X_test = X_test / 255
17 # one hot encoding
18 y_train = np_utils.to_categorical(y_train)
19 y_test = np_utils.to_categorical(y_test)
20 num_classes = y_test.shape[1]
21
22 # 搭建神經(jīng)網(wǎng)絡(luò)模型了,創(chuàng)建一個函數(shù),建立含有一個隱層的神經(jīng)網(wǎng)絡(luò)
23 def baseline_model():
24 model = Sequential() # 建立一個Sequential模型,然后一層一層加入神經(jīng)元
25 # 第一步是確定輸入層的數(shù)目正確:在創(chuàng)建模型時(shí)用input_dim參數(shù)確定。例如,有784個個輸入變量,就設(shè)成num_pixels。
26 #全連接層用Dense類定義:第一個參數(shù)是本層神經(jīng)元個數(shù),然后是初始化方式和激活函數(shù)。這里的初始化方法是0到0.05的連續(xù)型均勻分布(uniform),Keras的默認(rèn)方法也是這個。也可以用高斯分布進(jìn)行初始化(normal)。
27 # 具體定義參考:https://cnbeining.github.io/deep-learning-with-python-cn/3-multi-layer-perceptrons/ch7-develop-your-first-neural-network-with-keras.html
28 model.add(Dense(num_pixels,input_dim=num_pixels,kernel_initializer='normal',activation='relu'))
29 model.add(Dense(num_classes,kernel_initializer='normal',activation='softmax'))
30 model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
31 return model
32
33 model = baseline_model()
34 #model.fit() 函數(shù)每個參數(shù)的意義參考:https://blog.csdn.net/a1111h/article/details/82148497
35 model.fit(X_train,y_train,validation_data=(X_test,y_test),epochs=10,batch_size=200,verbose=2)
36 # 1、模型概括打印
37 model.summary()
38
39 scores = model.evaluate(X_test,y_test,verbose=0) #model.evaluate 返回計(jì)算誤差和準(zhǔn)確率
40 print(scores)
41 print("Base Error:%.2f%%"%(100-scores[1]*100))
?
轉(zhuǎn)載于:https://www.cnblogs.com/david2018098/p/10585856.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的机器学习-MNIST数据集-神经网络的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: window 日志清除
- 下一篇: (转载)C#:Enum、Int和Stri