训练卷积神经网络处理灰度图像的最合适方法?

使用Keras API训练卷积神经网络时,我通常在使用彩色PNG图像(输入尺寸为(高度,宽度,4))时使用2D卷积层。然而,现在我想使用灰度PNG图像训练网络,我在考虑最佳的方法是什么?

我想到了三种可能的方法:

  1. 将图像输入为彩色图像处理。
  2. 只输入图像的第一个通道,使输入尺寸为(高度,宽度,1)。
  3. 对图像的第一个通道进行1D卷积,使输入尺寸为(高度,宽度)。

由于我的灰度PNG图像在所有RGBA通道中具有相同的值,我认为通过仅使用图像的第一个颜色通道作为数据进行训练和测试,可以减少计算时间,同时达到相同的测试准确率,因为数据本质上是相同的。然而,事实并非如此。

使用第一种方法,我能够达到91.95%的测试准确率,训练每轮耗时约3秒。

使用第二种方法,准确率为89.66%,每轮耗时约2秒。

使用第三种方法,准确率为86.21%,每轮耗时不到1秒。

所有网络都使用相同的架构、核尺寸和池化尺寸进行训练,所以我想知道是什么导致了准确率的差异,以及我应该最信任哪一种方法?


回答:

显然,你的第三种方法与其他两种方法不等同,也不是解决问题的正确方法(部分原因也体现在较低的准确率上)。

现在,从理论上讲,你的第一种和第二种方法应该会产生大致相似的结果,根据你提供的准确率值来看,情况也确实如此。

这两种方法都没有问题。第一种方法略高的准确率的一个可能解释是,尽管在这里你实际上只是重复了一个通道的信息x3,但这在实际中起到了某种集成的作用(这种作用因相应的卷积滤波器从不同的随机初始化开始而得到增强);这导致了更多的“子模型”对输出贡献,从而根据模型集成的普遍预期,提高了性能。当然,你应该通过多次实验并计算每种方法的平均准确率来验证这一点(单次实验的结果可能因不同的随机初始化而有所不同)。

据我所知,CNN在单通道图像上的表现是一个相当未被充分探索的主题。你应该继续进行更多的实验!

你报告的每张图像的推理时间与不同的方法是一致的:1D卷积比2D卷积更快,处理单通道图像也比处理三通道图像更快。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注