python - 使用 Keras Python 测试神经网络

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

我使用 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”,无需再次重新训练,只需使用网络学到的知识。我也在考虑一种实时识别。

我应该怎么做?

提前致谢

最佳答案

通过训练有素的模型,您可以对任何新数据进行预测。您不必重新训练任何内容,因为(希望)您的模型可以将其学习推广到未见过的数据,并达到相当的准确性。

只需将“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

关于python - 使用 Keras Python 测试神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44632257/

相关文章:

python - Pandas Date Format 不转换日期

python - 如何在 python 中定义一个识别我的日期格式的函数

artificial-intelligence - 我应该为这个神经网络使用哪个激活函数?

python - 基于时间的数据到二进制标签的分类器

machine-learning - 在这种情况下,我可以说我的数据很糟糕,并且使用机器学习不会取得任何成果

opencv - 使用 openCV 检测由红外光突出显示的图案

opencv - 检测人造图案

python - 在python中将MMM YY转换为日期时间

python - 尝试在 Python 中使用 API JSON 输出

python - 如何减少 keras 序列模型的损失