功能:该界面能够加载一个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