构建Alextenet 解决 Cifar100分类问题(1024)

简介: 构建Alextenet 解决 Cifar100分类问题(1024)
import tensorflow as tf
# TODO  '注意'  如果下载数据失败则加入下面注释的两行代码
# import ssl
# ssl._create_default_https_context = ssl._create_unverified_context
from tensorflow import keras
cifar100 =keras.datasets.cifar100
(train_images, train_labels), _ = cifar100.load_data()   #下载数据
train_images = train_images/255.0       #归一化
train_images = tf.image.resize(train_images[:5000],(224,224))   #取前5000张照片并强制转换为(224*224*3)
train_labels = train_labels[:5000]  #取前5000张训练照片标签
# TODO.# ALEXNET解决Cifar100分类问题
#  TODO 1.conv1:11*11,96,4,valid   例:11*11(卷积核) ,stride=4(步长)
#   Maxpooling:3*3,2
# TODO 2.conv2:5*5,256,1,same
#  Maxpooling:3*3,2,valid
# TODO 3.  conv3:3*3,384,1,same
# TODO 4.  conv4:3*3,384,1,same
# TODO 5.  conv5:3*3,256,1,same
#  Maxpooling(最大池化):3*3,2,valid
#TODO 6.全连接层(打平) fc1:4096,dropout=0.5
# fc2:4096,dropout=0.5
# output:100(分为100类)
alexNet = keras.Sequential(layers=[
    #Conv1
    keras.layers.Conv2D(96,11,strides=(4,4),padding='valid',activation='relu'),
    keras.layers.BatchNormalization(),
    keras.layers.MaxPool2D(pool_size=(3,3),strides=(2,2),padding='valid'),
    #Conv2
    keras.layers.Conv2D(256,5,strides=(1,1),padding='same',activation='relu'),
    keras.layers.BatchNormalization(),
    keras.layers.MaxPool2D(pool_size=(3,3),strides=(2,2),padding='valid'),
    #conv3
    keras.layers.Conv2D(384,3,strides=(1*1),padding='same',activation='relu'),
    #Conv4
    keras.layers.Conv2D(384,3,strides=(1,1),padding='same',activation='relu'),
    #Conv5
    keras.layers.Conv2D(256,3,strides=(1,1),padding='same',activation='relu'),
    keras.layers.MaxPool2D(pool_size=(3,3),strides=(2,2),padding='valid'),
    #Flatten
    keras.layers.Flatten(),
    #FC1
    keras.layers.Dense(4096,activation='relu'),
    keras.layers.Dropout(rate=0.5),
    #fc2
    keras.layers.Dense(4096, activation='relu'),
    keras.layers.Dropout(rate=0.5),
    keras.layers.Dense(100)
])
#配置模型
alexNet.compile(optimizer='adam',
                loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),
                metrics=['accuracy']
                )
#训练模型
alexNet.fit(x=train_images,y=train_labels,batch_size=16,epochs=10)

image.png

如有侵权,请联系我删除

目录
相关文章
|
存储 机器学习/深度学习 算法
MMDetection3d对KITT数据集的训练与评估介绍
MMDetection3d对KITT数据集的训练与评估介绍
1429 0
MMDetection3d对KITT数据集的训练与评估介绍
【yolo训练数据集】标注好的垃圾分类数据集共享
【yolo训练数据集】标注好的垃圾分类数据集共享
1234 65
【yolo训练数据集】标注好的垃圾分类数据集共享
|
3天前
|
机器学习/深度学习 自然语言处理 数据可视化
基于CIFAR数据集 进行 MAE实现及预训练可视化 (CIFAR for MAE,代码权重日志全部开源,自取)
基于CIFAR数据集 进行 MAE实现及预训练可视化 (CIFAR for MAE,代码权重日志全部开源,自取)
|
3天前
|
机器学习/深度学习 数据可视化 数据库
R语言对MNIST数据集分析:探索手写数字分类
R语言对MNIST数据集分析:探索手写数字分类
|
3天前
|
机器学习/深度学习 数据可视化 算法
基于MLP完成CIFAR-10数据集和UCI wine数据集的分类
基于MLP完成CIFAR-10数据集和UCI wine数据集的分类
41 0
|
9月前
|
存储 大数据 Linux
基于 YOLOv8 的自定义数据集训练
基于 YOLOv8 的自定义数据集训练
|
11月前
|
机器学习/深度学习 并行计算
探索用卷积神经网络实现MNIST数据集分类
探索用卷积神经网络实现MNIST数据集分类
104 0
|
12月前
|
机器学习/深度学习 算法 数据处理
基于飞桨在MNIST数据集分类提升准确率到0.985以上实践
基于飞桨在MNIST数据集分类提升准确率到0.985以上实践
137 0
|
机器学习/深度学习 并行计算 数据可视化
【10】Cifar10数据集的分类及效果验证
【10】Cifar10数据集的分类及效果验证
162 0
【10】Cifar10数据集的分类及效果验证