eclipse擼一發Keras卷積神經網絡對手寫數字識別

1、導讀java

    一、window10 python環境Anaconda 安裝python

    二、keras安裝網絡

    三、tensorflow安裝eclipse

    四、eclipse python開發插件PyDev安裝,配置ide

    五、keras卷積神經網絡對手寫數字識別ui

2、環境安裝lua

    一、Anaconda spa

    Anaconda指的是一個開源的Python發行版本,其包含了conda、Python等180多個科學包及其依賴項。功能很是齊全。.net

    下載地址:https://www.anaconda.com/distribution/#download-section插件

    

    下載安裝

    

    安裝成功後,配置環境變量,打開cmd,用命令python --version查看版本號

    

    其中,環境變量很是重要,ssl的環境變量必須配置,不然使用pip時會出現異常(pip is configured with locations that require TLS/SSL, however the ssl module in Python is not  available. )

    

    特別說明:安裝以後,可能有些包是有問題的,例如:matplotlib和Pillow無法正常使用,會出現以下異常

File "E:\Program Files\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 32, in <module>
    import matplotlib.colorbar
  File "E:\Program Files\Anaconda3\lib\site-packages\matplotlib\colorbar.py", line 32, in <module>
    import matplotlib.contour as contour
  File "E:\Program Files\Anaconda3\lib\site-packages\matplotlib\contour.py", line 18, in <module>
    import matplotlib.font_manager as font_manager
  File "E:\Program Files\Anaconda3\lib\site-packages\matplotlib\font_manager.py", line 48, in <module>
    from matplotlib import afm, cbook, ft2font, rcParams, get_cachedir
ImportError: DLL load failed: 找不到指定的模塊。

    這時候,跟到異常的代碼行,看哪些庫是沒有正常依賴進來的,從新安裝便可。能夠類推以下的操做,來進行

   pip uninstall matplotlib

    pip install matplotlib

    pip uninstall Pillow

    pip install Pillow

二、keras安裝

    使用以下命令安裝:

    pip install keras

    

 三、安裝tensorflow

   因爲keras自己不提供運行,它依賴於其餘的運算引擎,例如TensorFlow、Theano、CNTK等,這裏,咱們安裝TensorFlow做爲keras的backend。

   用以下命令安裝:

   Tensorflow有cpu版和gpu版

    cpu版:pip install --user --ignore-installed --upgrade tensorflow

    gpu版:pip install --user --ignore-installed --upgrade tensorflow-gpu

    這裏,安裝的是cpu版,--user參數是由於有權限問題,因此加上

    四、eclipse PyDev插件安裝

    (1)、打開eclipse,Help->Eclipse Marketplace,搜索選擇PyDev,安裝

    

    (2)、配置eclipse開發環境

        window->preferences->PyDev->interpreters->Python Interpreter

        

    配置完成點肯定便可,即可以在eclipse上開發python程序了,和開發java同樣,很是方便。

3、Keras卷積神經網絡進行mnist手寫數字識別

    一、先加載數據集

    (x_train, y_train), (x_test, y_test) = mnist.load_data()

   說明: mnist.load_data()若是本地沒有,在會去下載數據集

    打印一下x_train的shape,看看數據集有哪些東西

    print(x_train.shape)

    二、展現樣本的圖片

#將畫板分爲1行2列,本幅圖位於第一個位置
plt.subplot(1,2,1)
# 打印兩個個樣本
plt.imshow(x_train[5], cmap='gray')
plt.subplot(1,2,2)
plt.imshow(x_train[10], cmap='gray')
plt.show()

    

    三、疊一個CNN網絡

model = Sequential()
model.add(Conv2D(32, kernel_size=(5, 5), activation='relu', input_shape=(img_x, img_y, 1)))
model.add(MaxPool2D(pool_size=(2, 2), strides=(2, 2)))
model.add(Conv2D(64, kernel_size=(5, 5), activation='relu'))
model.add(MaxPool2D(pool_size=(2, 2), strides=(2, 2)))
model.add(Flatten())
model.add(Dense(100, activation='relu'))
model.add(Dense(10, activation='softmax'))

model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

    和以前用dl4j疊CNN同樣,《有趣的卷積神經網絡》

    四、完整的代碼

from keras.datasets import mnist
from keras.layers import Conv2D, MaxPool2D
from keras.layers import Dense, Flatten
from keras.models import Sequential
from keras.utils import to_categorical

import matplotlib.pyplot as plt



(x_train, y_train), (x_test, y_test) = mnist.load_data()

print(x_train.shape)

#將畫板分爲1行2列,本幅圖位於第一個位置
plt.subplot(1,2,1)
# 打印兩個個樣本
plt.imshow(x_train[5], cmap='gray')
plt.subplot(1,2,2)
plt.imshow(x_train[10], cmap='gray')
plt.show()

img_x, img_y = 28, 28
x_train = x_train.reshape(x_train.shape[0], img_x, img_y, 1)
x_test = x_test.reshape(x_test.shape[0], img_x, img_y, 1)

x_train = x_train.astype('float32')/255
x_test = x_test.astype('float32')/255


y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)

model = Sequential()
model.add(Conv2D(32, kernel_size=(5, 5), activation='relu', input_shape=(img_x, img_y, 1)))
model.add(MaxPool2D(pool_size=(2, 2), strides=(2, 2)))
model.add(Conv2D(64, kernel_size=(5, 5), activation='relu'))
model.add(MaxPool2D(pool_size=(2, 2), strides=(2, 2)))
model.add(Flatten())
model.add(Dense(100, activation='relu'))
model.add(Dense(10, activation='softmax'))

model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, batch_size=128, epochs=1)

score = model.evaluate(x_test, y_test)
print('accuracy', score[1])

    五、運行結果

    eclipse run as  Python Run,迭代1個批次的結果以下。(固然,在eclipse中也能夠debug調試python程序)

    

    

快樂源於分享。

此博客乃做者原創, 轉載請註明出處

相關文章
相關標籤/搜索