TensorFlow 2.0:保存并加载包含 LSTM 层的模型,但加载公共失败并出现 ValueError

2024-03-03

当我尝试保存和加载包含 LSTM 层的模型时,加载公共失败并显示ValueError:找不到匹配的函数来调用从 SavedModel 加载的函数.

class RegNet(Model):
    def __init__(self,
             intermediate_dim=50,
             state_dim=9,
             name='RegNet',
             **kwargs):
        super(RegNet, self).__init__()
        self.d1 = Dense(intermediate_dim, activation='relu')
        self.d2 = Dense(state_dim, activation='relu')
        self.h = LSTM(state_dim, activation='sigmoid', return_sequences=True)
        self.o = Dense(state_dim, activation='softmax')

    def call(self, x):
        x = self.d1(x)
        x = self.d2(x)
        x = self.h(x)
        y = self.o(x)
        return y

regNet = RegNet()
...
# Export the model to a SavedModel
regNet.save(regNet_ckpt_dir, save_format='tf')
# Recreate the exact same model
tf.keras.models.load_model(regNet_ckpt_dir)

错误报告:

> ValueError: Could not find matching function to call loaded from the SavedModel. Got:
  Positional arguments (2 total):
    * Tensor("x:0", shape=(None, 1, 20), dtype=float32)
    * Tensor("training:0", shape=(), dtype=bool)
  Keyword arguments: {}

Expected these arguments to match one of the following 4 option(s):

Option 1:
  Positional arguments (2 total):
    * TensorSpec(shape=(None, 1, 20), dtype=tf.float32, name='input_1')
    * False
  Keyword arguments: {}

Option 2:
  Positional arguments (2 total):
    * TensorSpec(shape=(None, 1, 20), dtype=tf.float32, name='x')
    * False
  Keyword arguments: {}

Option 3:
  Positional arguments (2 total):
    * TensorSpec(shape=(None, 1, 20), dtype=tf.float32, name='x')
    * True
  Keyword arguments: {}

Option 4:
  Positional arguments (2 total):
    * TensorSpec(shape=(None, 1, 20), dtype=tf.float32, name='input_1')
    * True
  Keyword arguments: {}

当我注释 LSTM 层时,加载命令将会成功。哪里有问题?我们无法在 TensorFlow 2.0 中保存和加载带有 LSTM 层的模型?


如果其他人偶然发现这一点,这个解决方案对我有用:

# Save model
tf.keras.models.save_model(model, "saved_model.hp5", save_format="h5")

# Load model
loaded_model = tf.keras.models.load_model("saved_model.hp5")

不知道为什么“model.save(filename)”语法不适用于 LSTM,但我遇到了同样的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TensorFlow 2.0:保存并加载包含 LSTM 层的模型,但加载公共失败并出现 ValueError 的相关文章

随机推荐

  • 替换JS中某个字符的所有实例?

    我正在尝试创建一个简单的函数来替换 JS 中字符串中某个字符的所有实例 在这种情况下 我想替换所有a s with o s 我很确定代码是正确的 但输出仍然是原始字符串 function replaceLetter string for v
  • mongorestore 随机崩溃(致命错误)

    我使用的是 macOS 10 12 mongod version db version v3 2 8 git version ed70e33130c977bda0024c125b56d159573dbaf0 OpenSSL version
  • 如何在源代码中查找搜索词

    我正在寻找一种在项目的 C C 代码中搜索给定术语的方法 同时忽略注释和字符串中出现的任何情况 由于代码库相当大 我正在寻找一种方法自动地识别与我的搜索词匹配的代码行 因为它们需要手动检查 如果可能的话 我想在我的 Linux 系统上执行搜
  • 绘制相同值时显示更大的点

    当我绘制以下示例时 Participant lt c 1 12 AnswersDay1 lt c 9 3 9 13 7 12 10 7 9 0 12 11 Day1Group lt c 0 1 0 1 0 1 0 1 0 1 0 1 Pus
  • 傅立叶空间中的滤波器的行为与预期不同

    这是我提出的已回答问题的后续内容 可以找到here https stackoverflow com questions 54022376 inverse fft returns negative values when it should
  • RDP(VM) 最小化时自动化脚本失败

    我一直面临着在其中一台虚拟机上自动执行脚本的问题 我已经实现了保存文档功能的自动化 该功能最好是 Windows 设计的 UI 我尝试过使用各种技术 工具 如 AutoIT Python Sikuli 但如果虚拟机最小化 脚本就会停止 如果
  • 使用 Savon 在 Ruby on Rails 中进行 SOAP 调用在信封和主要操作方面变得很奇怪

    在使用 Savon rb 的 Rails 项目中 我尝试进行非常复杂的 SOAP 调用 至少复杂到 Savon 构建者太麻烦了 所以我决定直接操作 xml 首先我启动客户端 client Savon client endpoint gt h
  • 有 XHTML 5 验证器吗?

    是否有专门针对 XHTML 5 的验证器 即 HTML 5 的 XML 序列化 这W3C 验证器 http validator w3 org 支持文档类型 HTML 5 experimental which treats as valid
  • 从第二次“应用内购买”开始在 Android 中抛出异常

    我正在尝试包含在应用程序购买中 并且已成功显示可用的 SKU 现在我想进行虚假购买 所以我使用了 appId android test purchased 第一次它工作完美 但从接下来它抛出异常 如下所示 尝试在空对象引用上调用虚拟方法 a
  • 为什么主键顺序很重要?

    我最近在 EntityFramework 项目中设置了一个类 它将其几个成员指定为组合键 但是 当需要从中创建数据库时 它给出了错误 无法确定类型 NNNNN 的复合主键排序 使用 ColumnAttribute 或 HasKey 方法指定
  • 如何对异常处理程序中间件进行单元测试

    我正在尝试使用自定义错误处理程序为我的 NET Core 3 API 返回格式正确的异常 处理程序工作得很好 我遇到的问题是编写适当的单元测试来测试处理程序 我为此注册了中间件 如下所示 public void Configure IApp
  • 如何使用 Angular 2(typescript) 将数据和图像传递到“ASP.NET Core”Web API?

    我有只能将数据传递到 Web API 的代码 但我想将数据和图像都传递到同样的要求不在使用 Angular 2 TypeScript 和 ASP Net Core Web API 的不同请求中 我的将数据传递给API的代码 角度代码 cre
  • 合并 2 个或更多 ELF 文件的最简单方法

    我正在为一个类项目编写一些嵌入式代码 该项目当前 根据要求 创建了许多 srec 文件并合并它们 我希望能够将此代码加载到 QEMU 中 但它通常只对 ELF 文件满意 合并原始 ELF 文件而不是 srecs 的最有效方法是什么 同样可以
  • jQuery Datatables 在列中插入字段值

    我有一个 jQuery 数据表插件 它执行以下操作 tr th Id th th Datee th th Delete th tr data dataTable bProcessing true bServerSide true sAjax
  • 为了实现快速读/写性能(在 Python/pandas 中),推荐的 HDF5 压缩是多少?

    我曾多次读到 在 HDF5 中打开压缩可以带来更好的读 写性能 我想知道什么理想的设置可以在以下位置实现良好的读 写性能 data df to hdf format fixed complib complevel chunksize 我已经
  • 双三次插值 - Matlab 到 C++

    我正在尝试实现双三次插值 这是我的问题的后续问题 MATLAB vs C vs OpenCV imresize https stackoverflow com questions 26812289 matlab vs c vs opencv
  • 热重载不适用于 webpack-dev-server 和 docker

    使用安装了 docker 的 Ubuntu Linux 没有虚拟机 我已经使用 vuejs 应用程序构建了一个 docker 映像 为了启用热重载 我使用以下命令启动 docker 容器 docker run it p 8081 8080
  • LuaJIT 支持表的 __gc 吗?

    Lua 5 2 与 5 1 相比 支持表的 gc LuaJIT 借用了这个好功能吗 我进行了谷歌搜索 并检查了 LuaJIT变更历史记录 http luajit org changes html但无法找出答案 去尝试一下 test lua
  • 使用 Doxygen 自定义标签

    我想弄清楚是否有办法使用 Doxygen 创建自定义标签 我确实找到了 ALIAS 配置文件选项 但这并不完全符合我的需要 基本上在我的代码中我希望能够编写类似的内容 req Requirement 322 blah blah 然后让 Do
  • TensorFlow 2.0:保存并加载包含 LSTM 层的模型,但加载公共失败并出现 ValueError

    当我尝试保存和加载包含 LSTM 层的模型时 加载公共失败并显示ValueError 找不到匹配的函数来调用从 SavedModel 加载的函数 class RegNet Model def init self intermediate d