【问题标题】:exporting TensorFlow model with no variables导出没有变量的 TensorFlow 模型
【发布时间】:2020-01-18 15:08:12
【问题描述】:

我正在导出 Keras TF 模型,但运气不佳:

import tensorflow as tf
import numpy as np

ssValues = np.zeros(shape=(640,800,6),dtype=np.float16)
ssValues += 3.

ssKerasConstant = tf.keras.backend.constant(value=ssValues, dtype=tf.dtypes.float16, shape=(1,640,800,6));
inputLayer = tf.keras.Input(shape=(640,800,6),
                            name='inputLayer',
                            batch_size=None,
                            dtype=tf.dtypes.float16)

ssConstant = tf.constant(ssValues, dtype=tf.dtypes.float16, shape=(1,640,800,6), name='ss')
ssm = tf.keras.layers.Multiply()([inputLayer,ssKerasConstant])
model = tf.keras.models.Model(inputs=inputLayer, outputs=ssm)
tf.keras.experimental.export_saved_model(model, '~/models/model7.pb')

我收到以下错误: 图 = 输入[0].graph IndexError: 列表索引超出范围

即使我能够预测模型。

【问题讨论】:

  • 您提供的代码 sn-p 在 TF 2.0 nightly version '2.0.0-dev20191002' 中成功运行。但是,此功能已弃用。因此,您可能需要将模型保存为检查点格式,并进一步使用freeze_graph.py 转换为冻结模型。

标签: tensorflow keras


【解决方案1】:

替换最后一行代码即可成功保存模型,

tf.keras.experimental.export_saved_model(model, '~/models/model7.pb')

下面一行:

tf.saved_model.save(model, '~/models/model7.pb')

它适用于 TensorFlow 版本 2.0。请查找 Gist here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多