Keras官方Example里Mnist-cnn的調試運行


問題:老板讓測試運行Keras官網里的Mnist-cnn.py,結果從下載數據就是一路坑……

 

當前環境:Ubuntu12.04、python2.7、Keras 1.1.1(不知道這個版本號對不對,在啟動文件里查到的)

 

按遇到問題的先后逐個出解決方案:

1、load_data數據,下載老是報Errno 104 Connection reset by peer

解決:

  ①因為無論是否翻牆下載都很慢,下載數據到本地並解壓出pkl文件,絕對路徑中不能有中文,

  ②重寫數據加載函數,后面上代碼,

 

2、運行代碼時報錯:

OverflowError: Range exceeds valid bounds
從異常跑出的棧里看是numpy的random函數有越界,
解決:有兩種方法,就試了種簡單的,另一種沒試,
文件前面初始化設置:
from keras import backend
backend.set_image_dim_ordering('th')
查看具體解釋。


下面是修改后的代碼:如有問題還望能評論指出,謝謝,至少現在是能跑的,
import gzip

from six.moves import cPickle

from keras import backend
backend.set_image_dim_ordering('th')

batch_size = 128
nb_classes = 10
nb_epoch = 12

# input image dimensions
img_rows, img_cols = 28, 28
# number of convolutional filters to use
nb_filters = 32
# size of pooling area for max pooling
nb_pool = 2
# convolution kernel size
nb_conv = 3

def load_data(path='mnist.pkl.gz'):
#    path = get_file(path, origin='https://s3.amazonaws.com/img-datasets/mnist.pkl.gz')
    path = r'/home/wh/mnist.pkl'

    if path.endswith('.gz'):
        f = gzip.open(path, 'rb')
    else:
        f = open(path, 'rb')
    f = open(path, 'rb')   
    data = cPickle.load(f)
f.close() return data # (X_train, y_train), (X_test, y_test) # the data, shuffled and split between train and test sets #(X_train, y_train), (X_test, y_test) = mnist.load_data() (X_train, y_train), (X_test, y_test) = load_data()

  

 

時間戳:2016-12-5 20:50:13

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM