[Python] CNN

昨天用了一般的NN来做影像分类,但其实同样的情况用CNN会有效率很多,今天就来建立CNN再应用一次。

下载dataset和packages

import tensorflow as tf
from tensorflow import keras
fashion_mnist = keras.datasets.fashion_mnist
(X_train, y_train), (X_test, y_test) = fashion_mnist.load_data()
X_train = (X_train / 255.0).reshape(60000, 28, 28, 1)
X_test = (X_test / 255.0).reshape(10000, 28, 28, 1)
class_names = ["T-shirt/top", "Trouser", "Pullover", "Dress", "Coat",
                   "Sandal", "Shirt", "Sneaker", "Bag", "Ankle boot"]

开始建模,记得第一层layer要放input shape,layer中重要的参数有:

  1. filters:每层中filter的数量
  2. kernal_size:filter的宽度与长度,必须要是奇数
  3. strides: 步伐大小
  4. padding:是不是要处理边界,一般来说设定都是 “same”,也就是要处理
model = keras.models.Sequential()
model.add(keras.layers.Conv2D(filters=7, kernel_size=5, strides=1, padding="same", activation="relu",input_shape=[28, 28, 1]))
model.add(keras.layers.MaxPool2D(pool_size=2))

model.add(keras.layers.Conv2D(filters=7, kernel_size=3, strides=1, padding="same", activation="relu"))
model.add(keras.layers.MaxPool2D(pool_size=2))

model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(50, activation="relu"))
model.add(keras.layers.Dense(50, activation="relu"))
model.add(keras.layers.Dropout(0.3))
model.add(keras.layers.Dense(10, activation="softmax"))


model.compile(loss="sparse_categorical_crossentropy", optimizer="sgd", metrics=["accuracy"])
print(model.summary())
history = model.fit(X_train, y_train, epochs=10, validation_split=0.1)
model.evaluate(X_test, y_test)

https://ithelp.ithome.com.tw/upload/images/20211010/20142004zqh5n1KKgq.png

[reference]
https://blog.csdn.net/zz2230633069/article/details/88544747
https://www.geeksforgeeks.org/keras-conv2d-class/
https://www.cnblogs.com/yjybupt/p/11646846.html
https://woj.app/6491.html


<<:  Re: 新手让网页 act 起来: Day25 - useMemo 和 useCallback

>>:  Day28 vue.js搜寻栏 分页(pagination)功能

JavaScript学习日记 : Day12 - Event Loop

1.为何Event Loop存在? 主要的原因有两个 : 图片来源:Event loop and t...

前端工程学习日记第5天

#使用 CSS 变更 HTML 标签特性 #补充教材:不想算盒模型的推挤?试试 CSS3 box-s...

{DAY 20} Pandas 学习笔记part.6

前言 这篇文章会进行到更多的资料操作 将会处理 Indexing Values 在标签值的处理很重...

Day 9 - TiFlash架构(上)

TiDB能做到HTAP的另一块拼图,TiFlash,是以Column为储存模式的,适合用於一次读取少...

在 Debian 10.10 上轻松安装呒虾米

花了一点时间,把 Debian 10.10 下载与安装,我选择 Gnome 桌面环境,原因是在 Fe...