繁体   English   中英

加载 model,使用 Tensorflow 2.0 保存,使用 Tensorflow 1.x

[英]Loading a model, saved using Tensorflow 2.0, using Tensorflow 1.x

我正在通过拥抱脸使用变形金刚库。

他们在 Tensorflow 2.0 中为许多架构提供了预训练模型。 我想使用这些模型对 TPU 进行预测。 由于 Tensorflow 2.0 的 TPU API 仍处于试验阶段,我想在 Tensorflow 1.x 中进行

我有没有办法将预训练的 model 从 Tensorflow 2.0 转换为 Tensorflow 1.x,反之亦然?

The TPUE API for Tensorflow 2.0 is described here: https://www.tensorflow.org/guide/distributed_training#tpustrategy and is still experimental and a proper tutorial for it has not been shared yet. 甚至本文中共享的代码存根在 Colab 上也不适用于我,因此我想出了将 model 转换为 Tensorflow 1.x 的想法

虽然我不能保证这是运行转换的最简单方法,但我遇到了将 tensorflow 变量保存和恢复为原始 numpy arrays 的需要,这绝对可以帮助您进行转换。

在 Tensorflow 2 侧,制作 Tensorflow 变量的字典以及 Tensorflow 1 图中的变量名称,然后使用变量的名称制作字典。 然后您可能需要将名称-值字典序列化为文件,除非您可以设法将 tensorflow 的两个版本同时加载到同一个程序中。

在 Tensorflow 1 端,使用 tf.trainable_variables() 获取要分配的变量列表。 使用 variable.name 获取变量的名称,使用保存的字典获取该变量的值,然后使用 session.run(variable.assign(value)) 使用训练值填充参数。

诚然,这有点麻烦,而且它的性能可能不是很高,但至少应该不需要超过两打代码来实现!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM