我想将no中的卷积函数应用于我自己的数据集。但是CNN不能很好地处理我的数据集,我也找不到原因。下面,我将详细描述我的数据集,有人能帮我吗?非常感谢!在
数据集: 我的目标是使用CNN将我的图像(其大小为28*28=784)分为0和1两种类型。 我的原始数据是csv文件数据x.csv以及数据.csv. 在数据x.csv,每行存储每个图像的每个像素的灰度值数据.csv,每行是每个图像的标签。 数据x.csv(1000行,784列)
在数据.csv(1000行)
0;1;1;0;1;0;1;1;1;0;1....
基于以上csv数据,我构建了我的数据集('我的数据集.pkl.gz')的方法如下:
^{pr2}$在构建了数据集之后,我在卷积中使用它_mlp.py,通过替换mnist.pkl.gz版. 在我的数据集中,训练、验证和测试数据集中分别有1000个示例、500个示例和500个示例。所以在卷积中_mlp.py,我将批处理大小设置为500。然后在训练、验证和测试数据集中分别有2个小批次、1个小批次和1个小批次。我也让n峎出来是2。然后运行代码,打印出每个历元的训练误差。结果如下:
不管它运行了多少个时期,验证错误永远不会改变。事实上,我已经将学习率从0.1、0.01、0.001……改变了,但结果始终没有改变。 我想知道为什么会这样,有人能帮我吗?非常感谢你!在
看起来你的培训、验证和测试数据集是完全不同的。我的意思是,你的数据集可能是根据一些特征值或输出进行排序的,这样训练集和验证集没有共同的特性。这种情况的一个例子是,对于MNIST数据分区,在训练集中只有0-3的值,在验证集中只有4-6个值,在测试集中只有7-9个值。在
如果您读取所有三个数据集,随机地对它们进行洗牌,然后将它们拆分为三个集,则效果会更好。一般来说,人们使用7:2:1或8:1:1的比例来测试大小、验证大小和测试大小。这种分割后的模型学习效果会更好,精度也会提高。在
另外,我建议您使用较小的小批量,可能是32或64。这将导致每一个历元精度的提高。我希望有帮助。在
相关问题 更多 >
编程相关推荐