
import os
import struct
import numpy as np
import cv2
def load_mnist(path, kind='train'):
"""Load MNIST data from `path`"""
labels_path = os.path.join(path,
'%s-labels.idx1-ubyte'
% kind)
images_path = os.path.join(path,
'%s-images.idx3-ubyte'
% kind)
with open(labels_path, 'rb') as lbpath:
magic, n = struct.unpack('>II',
lbpath.read(8))
labels = np.fromfile(lbpath,
dtype=np.uint8)
with open(images_path, 'rb') as imgpath:
magic, num, rows, cols = struct.unpack('>IIII',
imgpath.read(16))
images = np.fromfile(imgpath,
dtype=np.uint8).reshape(len(labels), 784)
return images, labels
image, labels = load_mnist(r'C:\Users\Desktop\Python\Image_processing\data_number','train')
charNum = 10
'''將資料集的n維label 格式更新為 n X 10 '''
trainingLabel = []
for i in range(len(labels)):
labelArraytoAppend = []
for j in range(charNum):
if labels[i] == j:
labelArraytoAppend.append(1)
else:
labelArraytoAppend.append(0)
trainingLabel.append(labelArraytoAppend)
'''訓練多層神經網路 MLP'''
ann = cv2.ml.ANN_MLP_create()
ann.setActivationFunction(cv2.ml.ANN_MLP_SIGMOID_SYM)
ann.setTrainMethod(cv2.ml.ANN_MLP_BACKPROP)
ann.setBackpropMomentumScale(0.1)
ann.setBackpropWeightScale(0.001)
ann.setTermCriteria((cv2.TERM_CRITERIA_COUNT | cv2.TERM_CRITERIA_EPS, 500, 0.05))
ann.setLayerSizes(np.array([np.array(image).shape[1], 128, charNum], dtype=np.uint16))
ann.train(np.array(image, dtype=np.float32), cv2.ml.ROW_SAMPLE, np.array(trainingLabel, dtype=np.float32))
ann.save(r'C:\Users\bj0lt5\Desktop\Python\Image_processing\data_number\characterRecognize.xml')
'''測驗神經網路'''
testImage, testLabels = load_mnist(r'C:\Users\Desktop\Python\Image_processing\data_number', 't10k')
#result = np.zeros((testLabels.shape[0], charNum), dtype=np.float32)
retval, result = ann.predict(np.array(image, dtype=np.float32))
print(result[:2])
uj5u.com熱心網友回復:
你都用python了為啥不用tensorflow呢,資料還多點uj5u.com熱心網友回復:
新手還沒接觸到 Tensor flow 。。 我去學習一下,但是這樣應該也可以實作吧,不知道哪里有問題uj5u.com熱心網友回復:
您好~我想問您一下,這個問題您解決了嗎?因為我現在也在使用opencv來訓練神經網路。我也遇到了這個問題。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/40514.html
標籤:圖形處理/算法
上一篇:VS2010創建不了新專案
