tensorflow - Tensorflow:如何仅从检查点恢复特定的隐藏层并使用它们构建不同的计算图进行推理?
问题描述
假设我用一个非常复杂的计算图训练了一个模型,该计算图是为训练量身定制的。经过大量训练后,最好的模型被保存到一个检查点文件中。现在,我想使用这个最佳模型的学习参数进行推理。但是,用于训练的计算图与我打算用于推理的计算图并不完全相同。具体来说,图中有一个模块,有几个层负责输出项目的嵌入向量(推荐系统上下文)。但是,为了计算性能,在推理期间,我希望提前预先计算所有项目嵌入向量,以便每个请求所需的唯一计算只涉及几个隐藏层。
因此,我想知道该怎么做:
如何仅恢复输出项目嵌入向量的网络部分,以便为所有项目预先计算这些向量(这将在某些离线预处理脚本中发生)
一旦预先计算了所有项目嵌入向量,在在线推理期间,如何仅恢复网络后期部分中的隐藏层并使其接收预先计算的项目嵌入向量。
以上几点如何实现?我认为第 1 点更容易完成。但我最关心的是第 2 点。在用于训练的计算图中,为了评估任何层,我必须为输入占位符提供值。然而,在在线推理期间,这些占位符将被淘汰,因为很多东西会被预先计算,而且我不知道如何告诉网络后面部分的隐藏层它们不应再依赖这些过时的占位符,而是依赖而是在预先计算的东西上。
解决方案
推荐阅读
- reactjs - 使用拦截器时无法用axios发送表单数据
- html - 使用 Angular CDK 拖放和 CDKDropListEnterPredicate 交换列表中的元素
- matlab - 如何找出一个范围内的多数点位于 MATLAB 中另一个向量中值的左侧、右侧或中心区域?
- php - 如何添加当前日期是否在某个日期条件之前作为 if 语句参数
- android - 如何在具有多个应用程序模块的项目上使用 Here Maps?
- laravel - 使用 API 中的数据填充 Quasar Tree - 发送处理函数时遇到问题
- revit-api - Revit API:维护多个 API 版本的代码
- javascript - 使用递归
- terraform - 为什么 terraform 在以下琐碎场景中无法正确计算局部变量?
- php - magento1.9.1 有没有办法让它在 xampp 3.2.4 上与 php7.4.4 一起工作