【问题标题】:Test neural network using Keras Python使用 Keras Python 测试神经网络
【发布时间】:2017-11-21 18:28:39
【问题描述】:

我已经在 Python 中使用 Keras 和数据集训练和测试了前馈神经网络。但是每次,为了识别具有外部数据的新测试集(外部数据不包含在数据集中),我必须重新训练前馈神经网络来计算测试集。例如每次我必须做的事情:

 model.fit (data, output_data)
 prediction=model.predict_classes(new_test)
 print "Prediction : " prediction

获得正确的输出:

  Prediction: [1 2 3 4 5 1 2 3 1 2 3]
  Acc: 100%

现在我将测试一个新的测试集,即“new_test2.csv”,而无需再次重新训练,只需使用网络学到的知识。我也在考虑一种实时识别。

我应该怎么做?

提前致谢

【问题讨论】:

    标签: python neural-network pattern-recognition model-fitting


    【解决方案1】:

    借助训练有素的模型,您可以对任何新数据进行预测。你不必重新训练任何东西,因为(希望)你的模型可以将它的学习推广到看不见的数据,并达到相当的准确性。

    只需将“new_test2.csv”中的数据输入到您的预测函数中:

    prediction=model.predict_classes(content_of_new_test2)
    

    显然您需要相同类型和类的数据。除此之外,您需要对新数据应用任何转换,就像您可能已经转换了您训练模型所依据的数据一样。

    如果您想要实时预测,您可以使用 Flask 设置 API:

    http://flask.pocoo.org/

    关于术语和正确的训练方法:

    您在训练集训练(例如,您拥有的所有数据的 70%)。

    您使用验证集(例如 15% 的数据)验证您的训练。您可以使用训练中的准确率和损失值来调整超参数。

    然后,您通过预测来自您的测试集的数据(同样是您数据的 15%)来评估模型的最终性能。那一定是数据,你的网络以前从未见过,也没有被你用来优化训练参数。

    之后,您可以预测生产数据。

    如果您想保存经过训练的模型,请使用此(取自 Keras 文档):

    from keras.models import load_model
    
    model.save('my_model.h5')  # creates a HDF5 file 'my_model.h5'
    del model  # deletes the existing model
    
    # returns a compiled model
    # identical to the previous one
    model = load_model('my_model.h5') 
    

    https://keras.io/getting-started/faq/#how-can-i-save-a-keras-model

    【讨论】:

    • 感谢您的回答。您可以想到一个脚本,其中包含用于测试新条目的所有训练和测试代码。每次我只有一个脚本,重新训练网络以预测新测试集的输出。我之前的请求涉及我应该如何做,以保存/调用经过训练的神经网络以测试新数据集。基本上,我需要一些东西来存储我的网络并尝试从它的知识中识别任何东西。我希望已经清楚了。 @petezurich
    • 从您的问题和评论来看,我并不完全清楚您将数据拆分为训练、验证和测试数据的方法是否正确。请参阅我的回答中的描述。这样做非常重要,否则你会得到错误的结果。
    • 为了解决根本问题... (+1)
    【解决方案2】:

    在您的训练文件中,您可以使用

    保存模型
    model.save('my_model.h5')
    

    以后,当你想测试时,你可以加载它

    from keras.models import load_model
    model = load_model('my_model.h5')
    

    然后你可以打电话给model.predict等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-14
      • 1970-01-01
      • 2019-09-10
      • 2012-09-19
      • 2018-10-30
      • 2017-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多