【问题标题】:2d convolution in tflearn CNN trashes learning for mnist and cifar-10 benchmarkstflearn CNN 中的 2d 卷积破坏了 mnist 和 cifar-10 基准的学习
【发布时间】:2016-08-10 23:43:44
【问题描述】:

我仍在学习如何实现 tflearn 网络,请耐心等待。我从这里尝试了 tflearn 示例代码:https://github.com/tflearn/tflearn/blob/master/examples/images/convnet_cifar10.py

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

但是,仅注释掉 2D 卷积和最大池化操作,验证准确度在前 10 个 epoch 中跃升至 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 代码的静默错误的症状?

【问题讨论】:

    标签: machine-learning computer-vision tensorflow


    【解决方案1】:

    事实证明 CUDA 或 CudNN 库中存在错误。如果我在运行脚本之前关闭 GPU 计算,损失会下降,验证准确率会立即上升。

    export CUDA_VISIBLE_DEVICES=''
    python .....
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-03
      • 2018-07-14
      • 2017-11-11
      • 2017-03-14
      • 2018-06-21
      • 2016-05-31
      • 1970-01-01
      • 2020-05-23
      相关资源
      最近更新 更多