使用 Python 和 Keras 实现卷积神经网络

MNIST数据集

我们将使用另一个著名的数据集——MNIST 数据集。该数据集扩展了其前身 NIST,具有 60,000 个样本的训练集和 10,000 个手写数字图像的测试集。所有数字都已标准化大小并居中。图像的大小也是固定的,因此预处理图像数据被最小化。这就是为什么这个数据集如此受欢迎的原因。它被认为是卷积神经网络领域的一个“”例子。Hello World

此外,使用卷积神经网络,我们可以得到几乎人类的结果。目前,该记录由并行计算中心(乌克兰赫梅利尼茨基)保持。他们只使用了5个卷积神经网络的集合,错误率为0.21%。很酷,不是吗?

导入库和数据

与本系列的前几篇文章一样,我们将首先导入所有必要的库。其中一些是熟悉的,但其中一些我们将进一步解释。

<span style="color:black"><span style="background-color:#fbedbb">import numpy as np 
from matplotlib import pyplot as plt
from keras.utils.np_utils import to_categorical 
from keras.models import Sequential 
from keras.layers.core import Dense, Dropout, Flatten 
from keras.layers import Conv2D, MaxPooling2D</span></span>

正如你所看到的,我们将使用,我们在前面的例子中已经使用的库,用于对多维数组和矩阵进行运算。此外,您可以看到我们正在使用本文中已经使用的库中的一些功能,但也有一些新功能。 并用于创建模型层和标准层,即全连接层。numpyKerasSequentialDense

此外,我们还可以看到我们从中使用的一些新类。 是我们将用来创建卷积层的类。 是用于池化层的类,类用于展平级别。我们也使用 from 。此类用于将向量(整数)转换为二进制类矩阵,即用于单热编码。最后,请注意,我们将用于显示结果。KerasConv2DMaxPooling2DFlattento_categoricalKeras utilsmatplotlib

  • 25
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Keras 是一个高层次的深度学习框架,它可以用于构建各种类型的神经网络,包括卷积神经网络(CNN)。下面是使用 Keras 实现卷积神经网络的一些基本步骤: 1. 导入必要的库和模块: ```python from keras.models import Sequential from keras.layers import Dense, Conv2D, MaxPooling2D, Flatten ``` 2. 创建一个基本的卷积神经网络模型: ```python model = Sequential() ``` 3. 添加卷积层,可以使用`Conv2D`函数: ```python model.add(Conv2D(filters=32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1))) ``` 其中,`filters`参数表示卷积核的个数,`kernel_size`参数表示卷积核的大小,`activation`参数表示该层使用的激活函数,`input_shape`参数表示输入数据的形状。 4. 添加池化层,可以使用`MaxPooling2D`函数: ```python model.add(MaxPooling2D(pool_size=(2, 2))) ``` 其中,`pool_size`参数表示池化窗口的大小。 5. 添加 Flatten 层,将卷积层和池化层的输出展平: ```python model.add(Flatten()) ``` 6. 添加全连接层,可以使用`Dense`函数: ```python model.add(Dense(units=128, activation='relu')) ``` 其中,`units`参数表示该层神经元的个数。 7. 添加输出层,可以使用`Dense`函数: ```python model.add(Dense(units=10, activation='softmax')) ``` 其中,`units`参数表示输出的类别数,`activation`参数表示该层使用的激活函数。 8. 编译模型,定义损失函数、优化器和评估指标: ```python model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) ``` 其中,`loss`参数表示损失函数,`optimizer`参数表示优化器,`metrics`参数表示评估指标。 9. 训练模型: ```python model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test)) ``` 其中,`X_train`和`y_train`表示训练数据集的输入和输出,`epochs`参数表示迭代次数,`batch_size`参数表示批量大小,`validation_data`参数表示验证数据集的输入和输出。 10. 评估模型: ```python score = model.evaluate(X_test, y_test, verbose=0) print('Test loss:', score[0]) print('Test accuracy:', score[1]) ``` 其中,`score`表示模型的评估结果,`verbose`参数表示是否显示进度条。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值