训练后,训练后的模型将保存为H5格式。但是我不知道该H5文件如何用作分类器以对新数据进行分类。在对新数据进行分类时,H5模型在理论上如何工作?
答案 0 :(得分:0)
将模型另存为h5文件时,将保存模型结构,其所有参数以及其他信息,例如优化器的状态等。这只是保存大量信息的有效方法。您也可以使用json或xml文件格式来执行此操作。
仅使用此文件(不可执行)不能对任何内容进行分类。您必须从该文件将其重建为张量流图。为此,您只需使用keras中的load_model()函数,该函数将返回keras.models.Model对象。然后,您可以使用该对象通过keras预报()函数对新数据进行分类。
答案 1 :(得分:0)
好问题
首先,您需要了解什么是HDF5文件,因为如果您要回答问题,这是本质,请参阅以下链接:What is HDF5
众所周知,这是一种有点复杂的文件,可以容纳您训练的模型的所有必要信息。
,但它不是可执行文件,因此它只能与要分类的图像一起用作函数的输入,”在对图像进行适当的预处理之后”,
然后根据HDF5文件和图像中的信息,将发生一系列操作,然后返回这些操作的结果类的概率。
例如,在深度学习框架中,我们可以在Web应用程序中使用tensorflow.js来使用model.h5,而负责此操作的函数是“ tensorflow库”中的“ model.predict”。
这是javascript中的源代码,可帮助您明确这一点: hdf5文件已转换为JSON,因为这是tensorflow.js中受支持的格式。
如果您想了解更多有关tensorflow.js的信息:youtube playlist by deeplizard
另外,正如您所见,我们可以将HDF5文件转换为JSON文件,我想这更加清楚了!
model = await tf.loadModel("model.json");
let tensor = tf.fromPixels(image)
.resizeNearestNeighbor([224,224])
.toFloat();
let predictions = await model.predict(tensor).data();
let top5 = Array.from(predictions)
.map(function (p, i) { // this is Array.map
return {
probability: p,
className: CLASSES[i] // we are selecting the value from the obj
};
}).sort(function (a, b)
我希望这能对阅读我提到的文章有所帮助,并且其中的大部分内容是有道理的。