手把手教你用Keras框架写CNN(附全部代码和注解)

    技术2024-04-01  110

    1: 首先你得准备好Pycharm,Anaconda 然后是第三方类库numpy,tensorflow,matplotlib,keras Keras框架能简单上手,高度集成,利用这个框架写出来的CNN就可以作图片识别了。我们这里识别minst数据集。 [mnist数据集](链接:https://pan.baidu.com/s/1Jt4p5EYF5mPzhiGGhrMN3A 提取码:mz1w) mnist数据集包含60,000个用于训练的示例和10,000个用于测试的示例。这些数字已经过尺寸标准化并位于图像中心,图像是固定大小(28x28像素),其值为0到1。为简单起见,每个图像都被平展并转换为784(28 * 28)个特征的一维numpy数组。 是长这个样子的: IDE和数据都有了,下面开始 2.导入库和模块 从mnist中加载图像数据 我们可以查看数据的构造 print(x_train.shape) print(y_train.shape) x_train是训练集的数据,可以看到它的结构是28X28的,y_train其实是标签文件。比如x_train[0]代表着数字5的图片 那么y_train[0]就标注着5,它们是对应的 接下来要对图像数据作预处理,CNN的输入维度还要再加上“深度” 接下来要预处理数据标签,这一步是为了之后的分类的方便准备的。因为0-9一共有十个数字,识别这些样本就是为了对这些样本作分类。 3.以上都是数据的处理,接下来到关键的模型搭建了 先Sequential(),译为贯序模型。有了它之后,接下来的搭建行为就可以看做‘“垒砖”,第一层……第n层

    第一层就是卷积层 32代表32个filter,filter大小3X3,激活函数是relu,input_shape代表输入图片宽28高28深度为1 接下来是池化层 这里的pool_size就是池化层filter,大小是2X2 再接下来我们就要添加全连接层了, 最后一个是输出层 最难的部分已经过去,我们开始编译模型。告诉模型我们需要损失值,识别精度和优化方法来帮助判断模型的效果 查看一下我们搭建的模型 可以看到输出的图片维度和神经元的参数个数 开始训练模型 epoch代表训练 轮数,batch_size代表批处理数据规模,validation_split是在训练集中划分出30%作为验证集 最后结果:可以看到训练精度还是可以的 怎么样,是不是很简单。 全部代码: 还可以用这个代码去识别其他的数据集。

    Processed: 0.010, SQL: 9