【问题标题】:How can I convert a model trained in tensorflow 2 to a tensorflow 1 frozen graph如何将在 tensorflow 2 中训练的模型转换为 tensorflow 1 冻结图
【发布时间】:2021-01-01 12:45:27
【问题描述】:

我想使用 tensorflow 2 训练模型,但之后我需要使用仅与 tensorflow 1 兼容的转换器。是否有可能,如果可以,我如何将使用 tensorflow 2 训练的模型转换为 tensorflow 1 种格式?

【问题讨论】:

  • 您好,欢迎来到 Stack Overflow!您能否提供一些正在创建的基本 TensorFlow 2 模型的示例代码,以及一些系统来检查导出的模型是否与 TensorFlow 1 兼容?这可能更容易弄清楚如何将两者联系起来
  • 我正在使用 github.com/tensorflow/models 微调 TF2 模型动物园中的模型。 SSD MobileNet v2 320x320 from github.com/tensorflow/models/blob/master/research/… 为了微调我正在使用的模型模型/research/object_detection/model_main_tf2.py python object_detection/model_main_tf2.py --alsologtostderr --model_dir=../tf2_model_test/ --pipeline_config_path=~/ssd_mobilenet_v2_320x320_coco17_tpu-8/pipeline.config 我相信我所需要的只是转换的输出可用于 TF1。

标签: python tensorflow tensorflow2


【解决方案1】:

如果没有方法可以将您的 TF2 模型可靠地转换为 TF1,您始终可以保存经过训练的参数(权重、偏差)并稍后使用它们来启动您的 TF1 图。 我以前这样做是为了其他目的。可以按如下方式保存:

weights = []
for layer in model.layers:

    w = layer.get_weights()
    if len(w)>0:
      print(layer.name)
      weights.append(w)


with open('mnist_weights.pkl', 'wb') as f:
  pickle.dump(weights, f)  

w[0]=weightsw[1]=biases 每一层的位置

【讨论】:

    猜你喜欢
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2018-10-27
    • 1970-01-01
    相关资源
    最近更新 更多