【问题标题】:DREAM - Neural Network not Converging - Loss down and upDREAM - 神经网络不收敛 - 上下损失
【发布时间】:2018-04-30 19:36:59
【问题描述】:

我正在使用这个 DREAM 来预测下一个篮子: https://github.com/LaceyChen17/DREAM

它非常容易和直接,运行一些调整(常量的小错误)但我的损失在我尝试训练它之后很疯狂。

我正在尝试使用建议的数据集(来自 instacart)来模拟它的输出: https://www.instacart.com/datasets/grocery-shopping-2017

但数据似乎没有收敛。我试图将 LR 从 0.1 更改为 0.001,调整 CLIP 或 dropout,但没有任何积极的结果。我的损失不断下降,然后像疯了一样再次上升。

我正在尝试研究这个网络,在我第一次运行它之后,我想从那里开始工作,但现在我似乎无法调试它的问题。

这是我的配置示例:

DREAM_CONFIG = {'basket_pool_type': 'max', # 'avg'
                'rnn_layers': 3, # 2, 3
                'rnn_type': 'LSTM',#'RNN_TANH',#'GRU',#'LSTM',# 'RNN_RELU',
                'dropout': 0.5,
                # 'num_product': 49688 + 1, # padding idx = 0
                'num_product': 49688 + 1 + 1, 
                # 49688 products, padding idx = 0, none idx = 49689, none idx indicates no products
                'none_idx': 49689,
                'embedding_dim': 64, # 128 
                'cuda': False, # True,
                'clip': 20, # 0.25
                'epochs': 100,
                'batch_size': 256,
                'learning_rate': 0.0001, # 0.0001
                'log_interval': 1, # num of batchs between two logging
                'checkpoint_dir': DREAM_MODEL_DIR + 'reorder-next-dream-{epoch:02d}-{loss:.4f}.model',
                }

有什么见解吗?

【问题讨论】:

    标签: python tensorflow keras recurrent-neural-network market-basket-analysis


    【解决方案1】:

    可能需要尝试其他方法来提高训练的性能,但是,我至少建议使用“ModelCheckpoint”类来保存最佳验证权重。

    如果您使用的是 Keras,则可以参考此链接了解更多信息。

    Keras Callbacks

    您需要将一些训练数据分配给验证集。此回调计算验证集的损失并在每次改进时保存权重。训练后,您可以加载最佳权重以防止模型过度拟合。这至少可以防止您的模型在训练过程中变得更糟,并且您可以从那里通过进行额外的调整来解决问题。

    【讨论】:

    • 感谢您的见解。我正在尝试进行超参数调整以收敛,也许处理较小的批次就可以了。
    猜你喜欢
    • 2019-02-20
    • 2012-03-03
    • 1970-01-01
    • 2016-05-13
    • 2016-05-13
    • 1970-01-01
    • 2016-07-10
    • 2018-12-15
    • 2018-02-20
    相关资源
    最近更新 更多