基本配置:
Anaconda 3 4.2.0(python3.5)
注意:
1、代码存放至全英文目录下;
2、电脑管家之类的安全软件暂时关闭(因为发布出来的exe文件属于可执行文件,电脑管家可能会认为发布出来的文件为病毒,自动删除)
具体操作步骤如下:
1、写好的python代码,存放至全英文的目录下:
import keras
from keras.models import Sequential
import numpy as np
import pandas as pd
from keras.layers import Dense
import random
import matplotlib.pyplot as plt
from tensorflow.examples.tutorials.mnist import input_data
from tkinter import filedialog
import tkinter.messagebox #这个是消息框,对话框的关键
file_path = filedialog.askdirectory()
mnist = input_data.read_data_sets(file_path, validation_size=0)
#随机挑选其中一个手写数字并画图
num = random.randint(1, len(mnist.train.images))
img = mnist.train.images[num]
plt.imshow(img.reshape((28, 28)), cmap='Greys_r')
plt.show()
x_train = mnist.train.images
y_train = mnist.train.labels
x_test = mnist.test.images
y_test = mnist.test.labels
#reshaping the x_train, y_train, x_test and y_test to conform to MLP input and output dimensions
x_train = np.reshape(x_train, (x_train.shape[0], -1))
x_test = np.reshape(x_test, (x_test.shape[0], -1))
y_train = pd.get_dummies(y_train)
y_test = pd.get_dummies(y_test)
#performing one-hot encoding on target variables for train and test
y_train=np.array(y_train)
y_test=np.array(y_test)
#defining model with one input layer[784 neurons], 1 hidden layer[784 neurons] with dropout rate 0.4 and 1 output layer [10 #neurons]
model=Sequential()
model.add(Dense(784, input_dim=784, activation='relu'))
keras.layers.core.Dropout(rate=0.4)
model.add(Dense(10,input_dim=784,activation='softmax'))
# compiling model using adam optimiser and accuracy as metric
model.compile(loss='categorical_crossentropy', optimizer="adam", metrics=['accuracy'])
# fitting model and performing validation
model.fit(x_train, y_train, epochs=20, batch_size=200, validation_data=(x_test, y_test))
y_test1 = pd.DataFrame(model.predict(x_test, batch_size=200))
y_pre = y_test1.idxmax(axis = 1)
result = pd.DataFrame({'test': y_test, 'pre': y_pre})
tkinter.messagebox.showinfo('Message', 'Completed!')
2、通过命令行,按照pyinstaller
pip install pyinstaller
3、命令行打包文件
先切换路径至python代码所在目录,执行语句:
pyinstaller -F -w xxx.py
4、等待打包完成,会生成一个build文件夹和一个dist文件夹,exe可执行文件就在dist文件夹里,如果程序引用有资源,则要把资源文件放在这个exe正确的相对目录下。
5、运行exe文件。
有时运行文件会出错,此时需要拷贝下图所示的文件夹至exe文件所在目录

运行成功!