文章目录
CIFAR100数据集介绍
CIFAR100数据集有100个类别,每个类别包含600张图片,且每个类别中各有500张训练图片和100张测试图片。CIFAR100数据集的100个类别被分为20个超类。每个图像都有一个"精细"标签(它所属的类)和一个"粗糙"标签(它所属的超类)。
; 代码实现
读取数据集
from tensorflow.python.keras.datasets import cifar100
class CNNMnist(object):
def __init__(self):
(self.train,self.train_label),(self.test,self.test_label) = cifar100.load_data()
self.train = self.train.reshape(-1,32,32,3) / 255.0
self.test = self.test.reshape(-1,32,32,3) / 255.0
构建网络模型
- 卷积层:32个5*5的卷积核,步长设置为1,激活函数采用relu
- 池化层:池化大小为2,步长设置为2
- 卷积层:64个5*5的卷积核,步长设置为1,激活函数采用relu
- 池化层:池化大小为2,步长设置为2
- 全连接层:设置1024个神经元,激活函数为relu
- 全连接层:设置100个神经元,激活函数为softmax
from tensorflow.python.keras import layers,losses,optimizers
from tensorflow.python.keras.models import Sequential
import tensorflow as tf
class CNNMnist(object):
model = Sequential([
layers.Conv2D(32,kernel_size=5,strides=1,padding='same',data_format='channels_last',activation=tf.nn.relu),
layers.MaxPool2D(pool_size=2,strides=2,padding='same'),
layers.Conv2D(64,kernel_size=5,strides=1,padding='same',data_format='channels_last',activation=tf.nn.relu),
layers.MaxPool2D(pool_size=2,strides=2,padding='same'),
layers.Flatten(),
layers.Dense(1024,activation=tf.nn.relu),
layers.Dense(100,activation=tf.nn.softmax)
])
网络模型编译
class CNNMnist(object):
def compile(self):
CNNMnist.model.compile(optimizer=optimizers.adam_v2.Adam(),
loss=losses.sparse_categorical_crossentropy,
metrics=['accuracy'])
return None
模型训练
class CNNMnist(object):
def fit(self):
CNNMnist.model.fit(self.train,self.train_label,epochs=1,batch_size=32)
return None
模型评估
class CNNMnist(object):
def evaluate(self):
train_loss,train_acc = CNNMnist.model.evaluate(self.train,self.train_label)
test_loss,test_acc = CNNMnist.model.evaluate(self.test,self.test_label)
print("train_loss:",train_loss)
print("train_acc:",train_acc)
print("test_loss:",test_loss)
print("test_acc:",test_acc)
return None
模型运行
if __name__ == '__main__':
cnn = CNNMnist()
cnn.compile()
cnn.fit()
cnn.evaluate()
模型运行结果
1563/1563 [==============================] - 199s 126ms/step - loss: 3.5098 - accuracy: 0.1748
1563/1563 [==============================] - 56s 35ms/step - loss: 2.8101 - accuracy: 0.3094
313/313 [==============================] - 11s 33ms/step - loss: 2.9732 - accuracy: 0.2672
train_loss: 2.81014084815979
train_acc: 0.3094399869441986
test_loss: 2.9731905460357666
test_acc: 0.2671999931335449
从结果中可以看到,所得到的准确率还是比较低的。因为卷积神经网络损失的下降并没有全连接神经网络那么快,并且上述代码只迭代了一次。但是卷积神经网络相对于全连接神经网络来说,减少了训练的参数,可以降低对设备算力及性能的要求,因此在模式识别、物体检测等方面有着广泛的应用。
总结
本文的侧重点是介绍如何搭建卷积神经网络模型,没有对模型进行必要的改进。
注:本文的代码资源来自黑马程序员课程
Original: https://blog.csdn.net/professor_tao/article/details/119519729
Author: Stephen_Tao
Title: 卷积神经网络实现CIFAR100数据集分类
相关文章
unity 访问安卓相册获取图片或视频
项目要解决的问题: unity访问安卓相册获取图片或视频,且该activity不能继承UnityPlayerActivity(避免与其他包起冲突) 解决方式:在C#中获取UnityPlayerActi...
在colab中安装tensorflow以及pytorch
使用pip pip是一个命令行工具,不是一个代码指令,所以要在其前面加上感叹号。 新建笔记本,并且输入以下指令 ! pip install tensorflow 命令执行完成如下图所示: 再输出ten...
MobileNets(V1)的Tensorflow实现
目录 1. 前言 2. 模型搭建 3. 数据准备 4. 模型训练 5. 结果分析 1. 前言 在前一篇中MobileNets(V1)简介及两个初步的代码实验介绍基于Tensorflow.keras的预...
ASR项目实战-语音识别
本文深入探讨语音识别处理环节。 本阶段的重点特性为语音识别、VAD、热词、文本的时间偏移、讲话人的识别等。 语音识别 业界流派众多,比如Kaldi、端到端等,具体选择哪一种,需要综合考虑人员能力、训练...
TensorFlow2.0 学习-维度
x.shape=[2,3,4] 修改视图 tf.reshape(x,newShape) 增加维度 tf.expand_dims(x,axis)指定axis前插入维度 tf.expand_dims(x,...
2020未来杯高校AI挑战赛-跨设备说话人识别
赛事简介 语音可以作为一种生物识别的形式,通过对说话人语音的采样,我们对说话的身份进行验证,在语音助手、安防等领域有着广泛的应用场景。相对于基于文本内容的说话人识别,文本无关的验证因减少了变化的约束,...
YOLOv4+tensorflow2.0训练自己的数据
YOLOv4+tensorflow2.0训练自己的数据 一、环境配置 * 1.1 实验源码 1.2 环境要求 - 1.2.1 安装anaconda 1.2.2 在anaconda中创建tensorfl...
【深度学习前沿应用】图像风格迁移
抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。 Original: https://blog.cs...
利用Tensorflow实现三层全连接的神经网络
1.Tensorflow的概述原理: tensorflow的使用类似于一种框架定义,在使用tensorflow定义变量variable,和占位符tensorflow.placeholder()的时候,...
【YOLOX训练部署】YOLOX ONNX 使用GPU进行推理
YOLOX训练自己的VOC数据集 【YOLOX训练部署】YOLOX训练自己的VOC数据集_乐亦亦乐的博客-CSDN博客 将自己训练的YOLOX权重转化成ONNX 并进行推理 【YOLOX训练部署】将自...
comsol 超声声场模拟_[转载]Comsol Multiphysics 声场仿真模块整体介绍
前言 最近老师突然说让学学comsol,做一下超声检测的声场仿真,然后就接触了comsol,被它的强大功能所震撼,不过学习的过程是艰辛的。由于comsol涉及领域众多,难以一本教程涵盖所有,可用的学习...
Tensorflow安装后出现的问题
在Tensorflow安装完成后,为了检查是否安装成功时出现以下问题 (tf_gpu) C:\Users\1789834715>python Python 3.9.7 (default, Sep...
对比IMCRA来研究一下Cohen的TBRR跟踪方法
对比IMCRA来研究一下Cohen的TBRR跟踪方法 前言 MCRA1vs2-信噪比门限得出的语音存在概率 IMCRA vs TBRR-的语音存在概率计算: * IMCRA的语音不存在算法 TBRR的...
Chrome Service Model
John Abd-El-Malek February 2016 Objective Move Chrome codebase towards a service-oriented model. Thi...
论文阅读-FASPell: A Fast, Adaptable, Simple, Powerful Chinese Spell Checker Based
来源:爱奇艺 EMNLP2019 Workshop 论文:https://aclanthology.org/D19-5522.pdf 代码:GitHub - iqiyi/FASPell: 2019-S...