当前位置: 首页 > 知识库问答 >
问题:

正在[Google App Engine]中加载Keras模型

吕翰飞
2023-03-14

用例:我试图在Google App Engine中加载一个预先训练好的Keras模型为.h5文件。我正在Python Runtime3.7和标准环境中运行App Engine。

(2)也许有一种方法可以将model.h5从Google Storage加载到Google App Engine中,这是我没有想到的,例如使用其他函数(tf.keras.models.load_model())或其他格式?

我只是想读一下模型,以便进行预测。不需要编写或训练模型。

共有1个答案

邓韬
2023-03-14

在使用之前必须先下载文件,云存储路径不能用来访问对象。文档中有一个关于如何下载对象的示例

from google.cloud import storage


def download_blob(bucket_name, source_blob_name, destination_file_name):
    """Downloads a blob from the bucket."""
    # bucket_name = "your-bucket-name"
    # source_blob_name = "storage-object-name"
    # destination_file_name = "local/path/to/file"

    storage_client = storage.Client()

    bucket = storage_client.bucket(bucket_name)
    blob = bucket.blob(source_blob_name)
    blob.download_to_filename(destination_file_name)

    print(
        "Blob {} downloaded to {}.".format(
            source_blob_name, destination_file_name
        )
    )

然后将文件写入/tmp临时文件夹,这是App Engine中唯一可用的文件夹。但是您必须考虑到,一旦使用该文件的实例被删除,该文件也将被删除。

更具体地说,要加载keras模型,将其作为泡菜是很有用的,如本教程所示:

def _load_model():
    global MODEL
    client = storage.Client()
    bucket = client.get_bucket(MODEL_BUCKET)
    blob = bucket.get_blob(MODEL_FILENAME)
    s = blob.download_as_string()

    MODEL = pickle.loads(s)

我还找到了另一篇Stackoverflow文章的答案,它涵盖了您实际需要的内容。

 类似资料:
  • 问题内容: 如何在Keras中从HDF5文件加载模型? 我试过的 上面的代码将最佳模型成功保存到名为weights.hdf5的文件中。然后,我要加载该模型。下面的代码显示了我如何尝试这样做: 这是我得到的错误: 问题答案: 仅设置网络的权重。您仍然需要在调用之前定义其体系结构:

  • 问题内容: 我正在尝试从我训练的模型中保存和加载权重。 我用来保存模型的代码是。 让我知道这是不正确的方法,还是有更好的方法。 但是当我尝试使用它们加载它们时, 但我得到这个错误: 关于我可能在做错的任何建议吗?先感谢您。 问题答案: Keras提供了三种不同的保存方法。这些在上面(带有示例)以及下面的视频链接中进行了描述。 首先,收到错误的原因是因为您打错电话。 要保存和加载模型的权重,您首先需

  • 问题内容: 我正在构建一个小的Flask应用程序,该应用程序在后台使用卷积神经网络对用户上传的图像进行预测。如果我这样加载它,它将起作用: 但是,这要求在用户添加图像之后加载分类器(clf)。这需要一段时间,因为它需要根据一个pickle文件为200层以上的神经网络设置所有权重。 我想要做的是在生成应用程序时加载所有权重。为此,我尝试了此操作(为HTML模板/导入/应用启动切出了不相关的代码):

  • 问题内容: 在Keras中,如果您需要自定义损失以及其他参数,我们可以像https://datascience.stackexchange.com/questions/25029/custom- loss-function-with-additional-parameter-in- 凯拉斯 当我训练模型时,上述方法有效。但是,一旦训练了模型,我将很难加载模型。当我尝试在load_model中使用c

  • 我搜索过类似的问题,但没有找到解决方案。我有16位灰度图像,我正在尝试将它们放入keras ImageDataGenerator中。当使用诸如:flow_from_dataframe之类的函数时,它会生成所有具有相同像素值的图像(不正确)。 我尝试使用keras preprocess_输入,通过自定义预处理函数将其重新缩放到[0,1],再缩放到[-1,1],但这些都不起作用。我还在ImageDat