OpenCV 多层感知器训练代码示例
生活随笔
收集整理的這篇文章主要介紹了
OpenCV 多层感知器训练代码示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼參考:https://github.com/mbeyeler/opencv-machine-learning/blob/master/notebooks/09.04-Training-an-MLP-in-OpenCV-to-Classify-Handwritten-Digits.ipynb
from keras.datasets import mnist
import numpy as np
from sklearn.preprocessing import OneHotEncoder
import cv2
from sklearn.metrics import accuracy_score(X_train, y_train), (X_test, y_test) = mnist.load_data()np.unique(y_train)enc = OneHotEncoder(sparse=False, dtype=np.float32)
y_train_pre = enc.fit_transform(y_train.reshape(-1, 1))y_test_pre = enc.fit_transform(y_test.reshape(-1, 1))X_train_pre = X_train.astype(np.float32) / 255.0
X_train_pre = X_train_pre.reshape((X_train.shape[0], -1))
X_test_pre = X_test.astype(np.float32) / 255.0
X_test_pre = X_test_pre.reshape((X_test.shape[0], -1))mlp = cv2.ml.ANN_MLP_create()mlp.setLayerSizes(np.array([784, 512, 512, 10]))mlp.setActivationFunction(cv2.ml.ANN_MLP_SIGMOID_SYM, 2.5, 1.0)mlp.setTrainMethod(cv2.ml.ANN_MLP_BACKPROP)
mlp.setBackpropWeightScale(0.0001)term_mode = cv2.TERM_CRITERIA_MAX_ITER + cv2.TERM_CRITERIA_EPS
term_max_iter = 10
term_eps = 0.01
mlp.setTermCriteria((term_mode, term_max_iter, term_eps))mlp.train(X_train_pre, cv2.ml.ROW_SAMPLE, y_train_pre)_, y_hat_train = mlp.predict(X_train_pre)print(accuracy_score(y_hat_train.round(), y_train_pre))_, y_hat_test = mlp.predict(X_test_pre)
print(accuracy_score(y_hat_test.round(), y_test_pre))
訓練結果為:
0.92275
0.914
?
總結
以上是生活随笔為你收集整理的OpenCV 多层感知器训练代码示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sklearn 朴素贝叶斯分类示例
- 下一篇: tf.contrib 的命运走向