卷积神经网络算法介绍和代码例程

卷积神经网络(Convolutional Neural Network, CNN)是一种专门用于处理图像和视频数据的深度学习模型,其主要特点是引入了卷积层、池化层和全连接层来提取图像中的特征。CNN通过滤波器(卷积核)的卷积运算来捕获图像的局部特征,并通过池化层降低特征图的维度,最终在全连接层中实现分类或回归任务。

以下是一个简单的Python代码例程,使用Keras库搭建一个简单的卷积神经网络模型来对MNIST手写数字数据集进行分类:

# 导入必要的库
import numpy as np
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
from tensorflow.keras.utils import to_categorical

# 加载MNIST数据集
(X_train, y_train), (X_test, y_test) = mnist.load_data()

# 数据预处理
X_train = X_train.reshape(X_train.shape[0], 28, 28, 1)
X_test = X_test.reshape(X_test.shape[0], 28, 28, 1)
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)

# 创建卷积神经网络模型
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))

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

# 训练模型
model.fit(X_train, y_train, batch_size=128, epochs=5, validation_data=(X_test, y_test))

# 评估模型
score = model.evaluate(X_test, y_test)
print("Test loss: {:.4f}".format(score[0]))
print("Test accuracy: {:.2%}".format(score[1]))

在这个例程中,我们首先加载了MNIST手写数字数据集,并对数据进行预处理,然后创建了一个包含卷积层、池化层和全连接层的卷积神经网络模型,进行训练并评估模型性能。你可以根据需求调整模型结构、参数以及训练次数来应用卷积神经网络算法解决图像分类等问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WangLanguager

您的鼓励是对我最大的支持

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

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

打赏作者

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

抵扣说明:

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

余额充值