提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
非专业程序员,主业PLC单片机,2019年想扩充知识体系,紧跟潮流,带学生参加了人工智能大赛,才开始接触tensorflow以及深度学习的基本过程,非常艰难。后来比赛完了之后,学生也毕业了,因为感觉难度过大,而且自己将来也不准备转到这个行业,干脆就放弃了。最近疫情关在家里,想了一个晚上,对于本专业,自己干过项目,参加过大赛,虽然没有掌握PLC单片机所有的知识,但是掌握了方法论,能够快速的学习新的设备和目前尚未掌握的功能,没有应用的点,学习那些知识也就没有太大的必要。所以就决定利用疫情,继续开拓对自己来说仍然是新的领域,人工智能,从头开始。
现在再看tensorflow,已经改头换面了,1.x版本太过复杂,难以理解,2.x改善了很多,入门容易。
今天还是从手写数字开始,入门代码非常多,大多都是有关模型训练的,官网也有保存模型及加载模型的代码,这里就不再多写
预测部分,我在网上找到的都是使用mnist自己的测试数据来进行预测,有的是使用加载模型的方法测试准确率,有的是预测测试集中的数据,但是没有针对一个自己的图片(可以是摄像头拍的,可以是自己在画图里写的数字)的预测方法,这里主要解决这个问题。
这个想法产生的原因很简单,其实就是需要将我们的工作应用到现实中,整个过程我想是这几个步骤:准备训练数据、数据预处理来适配模型网络、搭建深度学习网络、训练模型、模型保存,到这实际上开发工作已经完成,下面的步骤就是要应用了,准备数据、加载模型、预测结果,预测的结果将用到后面的业务逻辑。
主要过程
导入
import tensorflow as tf
from tensorflow import keras
import cv2
from keras.preprocessing.image import img_to_array
import numpy as np
加载数据
def loadData():
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()