如何在张量流中保存/冻结任意泡菜模型?

时间:2019-01-10 10:14:47

标签: python tensorflow

我正在使用zalando的代码,该代码由Nvidia实施为渐进式GAN。参见:https://github.com/zalandoresearch/disentangling_conditional_gans

他们在训练时使用3个网络:GDGs。这三个模型都是https://github.com/zalandoresearch/disentangling_conditional_gans/blob/master/tfutil.py#L424

中定义的Network类的实例

这些模型使用许多辅助函数进行存储和加载,这些函数使用python的pickle格式将3个模型保存为*.pkl

我只对导出Gs模型感兴趣。

如何将其转换为保存的模型(因为代码不使用tf.Saver),最后将其转换为冻结的模型,以便我可以轻松推断。

在加载模型后,我会这样做:

allvars = [n.name for n in tf.get_default_graph().as_graph_def().node]
Gs_vars = [i for i in allvars if i.split('/')[0] == 'Gs']

但是,运行此命令时:

Gs_saver = tf.train.Saver({"Gs": Gs_vars})

它抛出一个错误,说:

*** ValueError: Slices must all be Variables: Gs/latents_in

使用Gs模型的正确实现是:

images = Gs.run(latents, labels, masks, minibatch_size=minibatch_size, num_gpus=config.num_gpus, out_mul=127.5, out_add=127.5, out_shrink=image_shrink, out_dtype=np.uint8)

Gs需要3个输入,分别存储为Gs/latents_inGs/masks_inGs/labels_in

0 个答案:

没有答案