pyqt5實現Mninst 手寫數字預測(keras框架)

功能:該界面能夠加載一個50x50的mnist圖片,然後使用預訓練的模型進行預測“該圖片是幾"

代碼:test01.py

# -*- coding: utf-8 -*-

"""
Module implementing Form.
"""

from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QWidget
import sys
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

from Ui_test01 import Ui_Form
from PyQt5.QtWidgets import QApplication

import numpy as np
import os
import gzip
import keras
from keras.models import Sequential # 導入序貫模型,可以通過順序的方式,疊加神經網絡層
from keras.layers import Dense

from keras import optimizers
from keras.optimizers import SGD # 導入優化函數
from keras.models import load_model
import imageio

class Form(QWidget, Ui_Form):
    """
    Class documentation goes here.
    """
    def __init__(self, parent=None):
        """
        Constructor
        
        @param parent reference to the parent widget
        @type QWidget
        """
        super(Form, self).__init__(parent)
        self.setupUi(self)
    
    @pyqtSlot()
    def on_pushButton_clicked(self):
        self.imgName, imgType = QFileDialog.getOpenFileName(self, "打開圖片", "", "*.jpg;;*.png;;All Files(*)")
        self.jpg = QtGui.QPixmap(self.imgName).scaled(self.label.width(), self.label.height())
        self.label.setPixmap(self.jpg)

    
    @pyqtSlot()
    def on_pushButton_2_clicked(self):
        """
        Slot documentation goes here.
        """
        # 模型的路徑
        path = "D:/Data/Model/model_file_path.h5"
        #加載模型
        model = load_model(path)
        png=imageio.imread(self.imgName)
        png=png.reshape(1,784)
        png=np.tile(png,[64,1])
        result=model.predict(png)
        #print(np.argmax(result[0]))
        value=np.argmax(result[0])
        self.lineEdit.setText(str(value))
if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWin = Form()
    myWin.show()
    sys.exit(app.exec_())
        

效果:

代碼和數據下載

鏈接:https://pan.baidu.com/s/1UDNkgTfZiN6RD9Qt0cM_eA 
提取碼:0ow0 
 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章