我有一条标准管道,可以在训练一个时期后评估模型。我需要 resnet50在训练时可以进行微调,所以我这样实例化:
var alloweCharSet = new HashSet<char>(allowedChars);
但是,我读到changelog时,应该在评估时取消设置标签。
我意识到我可以保存模型,关闭会话,重置图形,使用resnet50_module = hub.Module("https://tfhub.dev/google/imagenet/resnet_v2_50/feature_vector/1",
trainable=True, name="resnet50_finetunable", tags={"train"})
重建模型并从检查点加载权重以进行评估。特别是这似乎非常浪费,因为由于resnet50,模型的规模很大,我需要做数百个纪元才能获得好的结果。没有这种方法,有没有办法在标签之间交替?
谢谢!
答案 0 :(得分:0)
恐怕没有检查点就没有很好的方法。
变量是在调用hub.Module()时创建的,因此它们绑定到特定的图形版本(用于训练的tags = {“ train”}或用于推理的空标记集)。您所描述的内容可以理解为一项功能请求,可以针对模块的每个应用程序分别进行设置,但该功能请求尚不存在(并且有一些影响)。
与要运行的评估相比,对本地磁盘的检查点真的那么贵吗?无论如何,您是否不想随时检查站以允许在崩溃后恢复?