Tensorflow Hub 模块重用

Tensorflow Hub module reuse

假设我想使用来自 TF Hub 的特定 module(文本嵌入)来创建两个不同的 models,然后我想导出和提供它们。

选项 1: 为每个 model 导入 module,将每个分类器放在最上面,并导出 2 models;在各自的 docker 容器中提供服务。这些 models 包含底层嵌入模块和分类器。

选项 2:module 本身提供服务,并将其输出转到 2 个不同的服务 models,它们本身不包含嵌入。 (这甚至可能吗?)

我的计算机科学背景告诉我选项 2 更好,因为我们正在为两个模型重新使用原始嵌入模块,并将模型本身与嵌入模块解耦.

然而,从实际的角度来看,当数据科学家编码时,他们正在导入 module 并在其上使用分类器进行训练,因此导出 [=13= 变得很麻烦] 本身没有底层嵌入。

谁能指出我正确的方向?希望我的问题是有道理的,我自己不是数据科学家,我更多来自开发背景。

谢谢

将分类器放在嵌入模块之上会产生相当强的依赖性:分类器必须针对特定的嵌入进行训练 space。除非您做出非常特殊的安排,否则仅换入另一个嵌入模块是行不通的。所以选项 1 非常好:它产生两个可以独立提供和更新的模型。它们有一些重叠,类似于两个使用相同库的静态链接程序,但源代码仍然是模块化的:通过它们的共同签名使用 Hub 嵌入模块使它们可以互换。

相比之下,选项 2 为您提供了三个具有重要依赖性的活动部分。如果你的目标是简单,我不会去那里。