keras模型H5在理论上如何工作

时间:2019-02-07 04:21:02

标签: python python-3.x keras deep-learning conv-neural-network

训练后,训练后的模型将保存为H5格式。但是我不知道该H5文件如何用作分类器以对新数据进行分类。在对新数据进行分类时,H5模型在理论上如何工作?

2 个答案:

答案 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)

我希望这能对阅读我提到的文章有所帮助,并且其中的大部分内容是有道理的。