【问题标题】:Keras + Elephas - model trained more than nb_epoch timesKeras + Elephas - 模型训练超过 nb_epoch 次
【发布时间】:2018-02-12 14:33:09
【问题描述】:

我在有 3 个工作人员的集群上运行深度学习 elephas 代码 https://github.com/maxpumperla/elephas。例如,如果我将 Nb_epoch 设置为 30,它不会停止,但会再次运行 3 或 4 次 30 epoch。有人可以帮忙解决这个问题吗?

这怎么可能?执行应在 30/30 停止。

2101/2101 [==============================] - 10s 5ms/step - loss: 0.6103 - acc: 0.7444 - val_loss: 1.1255 - val_acc: 0.5427
Epoch 30/30

 128/2101 [>.............................] - ETA: 8s - loss: 0.4757 - acc: 0.8281
 256/2101 [==>...........................] - ETA: 8s - loss: 0.5443 - acc: 0.7891
 384/2101 [====>.........................] - ETA: 7s - loss: 0.5503 - acc: 0.7812
 512/2101 [======>.......................] - ETA: 7s - loss: 0.5372 - acc: 0.7793
 640/2101 [========>.....................] - ETA: 6s - loss: 0.5590 - acc: 0.7609
 768/2101 [=========>....................] - ETA: 5s - loss: 0.5685 - acc: 0.7630
 896/2101 [===========>..................] - ETA: 5s - loss: 0.5730 - acc: 0.7634
1024/2101 [=============>................] - ETA: 4s - loss: 0.5728 - acc: 0.7705
1152/2101 [===============>..............] - ETA: 4s - loss: 0.5794 - acc: 0.7622
1280/2101 [=================>............] - ETA: 3s - loss: 0.5891 - acc: 0.7578
1408/2101 [===================>..........] - ETA: 3s - loss: 0.5923 - acc: 0.7550
1536/2101 [====================>.........] - ETA: 2s - loss: 0.5942 - acc: 0.7513
1664/2101 [======================>.......] - ETA: 1s - loss: 0.5953 - acc: 0.7524
1792/2101 [========================>.....] - ETA: 1s - loss: 0.5938 - acc: 0.7500
1920/2101 [==========================>...] - ETA: 0s - loss: 0.5868 - acc: 0.7552
2048/2101 [============================>.] - ETA: 0s - loss: 0.5930 - acc: 0.7524
2101/2101 [==============================] - 10s 5ms/step - loss: 0.5914 - acc: 0.7544 - val_loss: 1.2075 - val_acc: 0.5128
Train on 2101 samples, validate on 234 samples
Epoch 1/30

【问题讨论】:

    标签: python machine-learning neural-network deep-learning keras


    【解决方案1】:

    您似乎正在训练多个模型。第一个完成后,下一个开始训练。您可以将多个经过训练的模型组合成一个集成,这通常会产生更好的结果。

    【讨论】:

      【解决方案2】:

      worker 的 train 方法(https://github.com/danielenricocahall/elephas/blob/master/elephas/worker.py#L26https://github.com/danielenricocahall/elephas/blob/master/elephas/worker.py#L76)用作 RDD 映射器函数:https://github.com/danielenricocahall/elephas/blob/master/elephas/spark_model.py#L162,这意味着每个 worker 将使用提供的训练配置(epochs、batch_size 等)调用 train。因此,在您的情况下,3 个工作人员 x 30 个时期 = 总共 90 个时期。

      【讨论】:

        猜你喜欢
        • 2019-05-28
        • 1970-01-01
        • 2017-07-28
        • 2021-09-27
        • 2020-07-16
        • 2019-08-27
        • 2017-09-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多