1

我有一个标准管道,可以在训练一个时期后评估模型。我需要resnet50 在训练时可以微调,所以我像这样实例化:

resnet50_module = hub.Module("https://tfhub.dev/google/imagenet/resnet_v2_50/feature_vector/1",
                             trainable=True, name="resnet50_finetunable", tags={"train"})

但是,我在这里读到我应该在评估时取消设置标签。

我意识到我可以保存模型、关闭会话、重置图表、使用 重建模型tags=None并从检查点加载权重以进行评估。这似乎非常浪费,特别是因为 resnet50 导致模型的大小很大,我需要做数百个 epoch 才能获得好的结果。如果没有这个,有没有办法在标签之间交替?

谢谢!

4

1 回答 1

0

如果不通过检查站,恐怕没有好的方法可以做到这一点。

调用 hub.Module() 时会创建变量,因此它们与特定的图形版本相关联(用于训练的标签 = {“train”} 或用于推理的空标签集)。您所描述的内容可以被解读为一个功能请求,为模块的每个应用程序单独设置它,但这还不存在(并且有一些后果)。

与您要运行的 eval 相比,检查点到本地磁盘真的那么昂贵吗?无论如何,您是否不想有时检查点以允许在崩溃后恢复?

于 2018-08-09T12:59:33.230 回答