花朵分类(一)

XianxinMao 2021-07-29 15:04:23

本次教程的目的是带领大家学会基本的花朵图像分类

首先我们来介绍下数据集,该数据集有5种花,一共有3670张图片,分别是daisy、dandelion、roses、sunflowers、tulips,数据存放结构如下所示

我们可以展示下roses的几张图片

接下来我们需要加载数据集,然后对数据集进行划分,最后形成训练集、验证集、测试集,注意此处的验证集是从训练集切分出来的,比例是8:2

对数据进行探索的时候,我们发现原始的像素值是0-255,为了模型训练更稳定以及更容易收敛,我们需要标准化数据集,一般来说就是把像素值缩放到0-1,可以用下面的layer来实现

normalization_layer = tf.keras.layers.experimental.preprocessing.Rescaling(1./255)

为了使训练的时候I/O不成为瓶颈,我们可以进行如下设置

AUTOTUNE = tf.data.AUTOTUNE
​
train_ds = train_ds.cache().prefetch(buffer_size=AUTOTUNE)
val_ds = val_ds.cache().prefetch(buffer_size=AUTOTUNE)

下一步就是模型搭建,然后对模型进行训练

num_classes = 5
​
model = tf.keras.Sequential([
  tf.keras.layers.experimental.preprocessing.Rescaling(1./255),
  tf.keras.layers.Conv2D(32, 3, activation='relu'),
  tf.keras.layers.MaxPooling2D(),
  tf.keras.layers.Conv2D(32, 3, activation='relu'),
  tf.keras.layers.MaxPooling2D(),
  tf.keras.layers.Conv2D(32, 3, activation='relu'),
  tf.keras.layers.MaxPooling2D(),
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dense(num_classes)
])
​
model.compile(
  optimizer='adam',
  loss=tf.losses.SparseCategoricalCrossentropy(from_logits=True),
  metrics=['accuracy'])
​
model.fit(
  train_ds,
  validation_data=val_ds,
  epochs=3
)

从上图的训练记录可以发现,该模型处于欠拟合状态,我们可以通过多训练几轮来解决这个问题,而且为了快速实验,我们这里用了一个非常简单的模型,我们可以通过更换更强的模型,来提升模型的表现

代码链接: https://codechina.csdn.net/csdn_codechina/enterprise_technology/-/blob/master/load_preprocess_images.ipynb

...全文
130 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

7,349

社区成员

发帖
与我相关
我的任务
社区描述
因为缘分,所以猿粉! 这里有“入门级选手”必备的成长路线图,为“程序员后备队”提供技术大咖直播指导,丰富的学习资料已经等候多时,请查收! 陪伴猿粉共同成长,提升技术不在话下;右边扫码关注微信公众号。
其他 其他
社区管理员
  • 高校俱乐部
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

       2021年“C站百所高校巡讲” “C站名企参观”等活动,火热报名中, 与CSDN创始人蒋涛、各路技术大咖面对面!

       现招募CSDN高校俱乐部的部长并组建本校CSDN高校俱乐部,我们希望你是高校在校生且是IT技术爱好者,校内社交圈,有强烈的责任心,熟悉社团工作,有校园活动组织经验,在高校能够建立长足发展的学习型俱乐部,我们期待您的加入,CSDN高校俱乐部将赋予以下权益:

  • 高校巡讲:骨灰级专家线下巡讲
  • 线上直播:技术大咖线上分享
  • 线下沙龙:学习精英线下沙龙讨论
  • 学习小组:任务驱动,免费学习
  • 能力认证:对标大厂,高薪就业
  • 技术竞赛:竞赛选拔,实战演练
  • 企业游学:到大厂参观并学习
  • 企业招聘:面向俱乐部成员专属招聘
  • 专属博客:给各俱乐部搭建社区云
  • 电子书卡:给俱乐部成员提供学习资源
  • 组织logo:设计旗帜,活动宣传

 联系方式:

  • 电话:张老师-17734567851(同微)
  • 邮箱:student@csdn.net
  • Q Q:1218227747

试试用AI创作助手写篇文章吧