【使用TensorFlow构建图像分类模型CIFAR-10】

数据集介绍:CIFAR-10

CIFAR-10 是一个包含 60,000 张 32x32 像素的彩色图像的数据集,它们分为 10 个不同的类别。这个数据集广泛用于深度学习的图像分类任务

import tensorflow as tf
from tensorflow.keras.datasets import cifar10
from tensorflow.keras.utils import to_categorical

# 加载CIFAR-10数据集
(x_train, y_train), (x_test, y_test) = cifar10.load_data()

# 数据预处理
x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255
y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)

构建卷积神经网络(CNN)模型

卷积神经网络(Convolutional Neural Network,CNN)在图像分类任务中表现出色。构建一个简单的CNN模型,包括卷积层、池化层、全连接层和Dropout层,用于防止过拟合。

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout

model = Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3), padding='same'),
    MaxPooling2D(2, 2),
    Conv2D(64, (3, 3), activation='relu', padding='same'),
    MaxPooling2D(2, 2),
    Flatten(),
    Dense(512, activation='relu'),
    Dropout(0.5),
    Dense(10, activation='softmax')
])

编译和训练模型

在构建模型后,编译它并进行训练。使用categorical_crossentropy作为损失函数,adam作为优化器,并使用准确率作为评估指标。

# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

# 设置 TensorBoard 回调
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir="logs")

# 训练模型
model.fit(x_train, y_train, epochs=10,
          validation_data=(x_test, y_test),
          callbacks=[tensorboard_callback])

使用TensorBoard可视化训练过程

TensorBoard,用于可视化模型性能和训练过程。在上述代码中,通过添加TensorBoard回调来启用TensorBoard。要查看TensorBoard的可视化效果,运行以下命令:

python -m tensorboard.main --logdir=./logs

在浏览器中访问TensorBoard的Web界面来监视模型的训练情况。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wdwc2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值