在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

使用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中创建了一个多类分类项目。该项目可以对…

发表回复

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