在tflearn CNN中使用2D卷积对MNIST和CIFAR-10基准测试的学习效果不佳

我还在学习如何实现tflearn网络,所以请耐心一些。我尝试了tflearn的示例代码,来自这里:https://github.com/tflearn/tflearn/blob/master/examples/images/convnet_cifar10.py

奇怪的是,损失值从未下降,在整个训练过程中,我看到的验证准确率始终是10%(在这个数据集上相当于随机猜测)。

然而,仅仅是注释掉2D卷积和最大池化操作,验证准确率在前10个周期内就跳到了0.47。

这是修改后的代码,似乎能得到更好的结果。其余代码与上述链接中的相同

network = input_data(shape=[None, 32, 32, 3],                     data_preprocessing=img_prep,                     data_augmentation=img_aug)#network = conv_2d(network, 32, 3, activation='relu')#network = max_pool_2d(network, 2)#network = conv_2d(network, 64, 3, activation='relu')#network = conv_2d(network, 64, 3, activation='relu')#network = max_pool_2d(network, 2)network = fully_connected(network, 512, activation='relu')network = dropout(network, 0.5)network = fully_connected(network, 10, activation='softmax')network = regression(network, optimizer='adam',                     loss='categorical_crossentropy',                     learning_rate=0.001)

我只是有点担心和困惑,tflearn网站上给出的示例实现,在实现2D卷积步骤时会产生随机分类。其他人之前有遇到过这种情况吗?或者有人能帮我解释一下为什么会发生这种情况吗?或者这是否是conv_2d代码中潜在bug的症状?


回答:

原来是CUDA或CudNN库中出现了错误。如果我在运行脚本前关闭GPU计算,损失值会立即下降,验证准确率也会上升。

export CUDA_VISIBLE_DEVICES=''python .....

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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