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程序)
快樂源於分享。
此博客乃做者原創, 轉載請註明出處