使用 Keras 测试神经网络 Python
Test neural network using Keras Python
我在 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:
关于术语和正确的训练方法:
您在训练集上训练(例如,您拥有的所有数据的 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
在您的训练文件中,您可以使用
保存模型
model.save('my_model.h5')
以后想测试的时候可以加载
from keras.models import load_model
model = load_model('my_model.h5')
然后你可以调用 model.predict
等等。
我在 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:
关于术语和正确的训练方法:
您在训练集上训练(例如,您拥有的所有数据的 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
在您的训练文件中,您可以使用
保存模型model.save('my_model.h5')
以后想测试的时候可以加载
from keras.models import load_model
model = load_model('my_model.h5')
然后你可以调用 model.predict
等等。