【问题标题】:Export Tensorflow experiment model with savedmodel使用 savedmodel 导出 TensorFlow 实验模型
【发布时间】:2021-02-22 12:11:05
【问题描述】:

请问如何使用TensorFlow SaveModel 保存此模型。

train_steps = int(0.5 + (1.0 * num_epochs * nusers) / batch_size)
    steps_in_epoch = int(0.5 + nusers / batch_size)
    print("Will train for {} steps, evaluating once every {} steps".format(train_steps, steps_in_epoch))
    def experiment_fn(output_dir):
        return tf.contrib.learn.Experiment(
            tf.contrib.factorization.WALSMatrixFactorization(
                num_rows = nusers, 
                num_cols = nitems,
                embedding_dimension = n_embeds,
                model_dir = output_dir),
            train_input_fn = read_dataset(tf.estimator.ModeKeys.TRAIN, input_path,batch_size, nitems, nusers, num_epochs,n_embeds, output_dir),
            eval_input_fn = read_dataset(tf.estimator.ModeKeys.EVAL, input_path, batch_size, nitems, nusers, num_epochs, n_embeds, output_dir),
            train_steps = train_steps,
            eval_steps = 1,
            min_eval_frequency = steps_in_epoch,
            export_strategies = tf.contrib.learn.utils.saved_model_export_utils.make_export_strategy(serving_input_fn = create_serving_input_fn(nitems, nusers))
        )

我尝试将 export_strategies 替换为 export_strategies=tf.export_saved_model(output_dir, serving_input_fn = create_serving_input_fn(nitems, nusers)) 并返回以下错误消息

AttributeError: module 'tensorflow' has no attribute 'export_saved_model

也试过export_strategies=tf.saved_model(output_dir, serving_input_fn = create_serving_input_fn(nitems, nusers))

TypeError: 'DeprecationWrapper' object is not callable

【问题讨论】:

    标签: tensorflow tensorflow-serving


    【解决方案1】:

    SavedModel 格式是序列化模型的另一种方式。以这种格式保存的模型可以使用tf.keras.models.load_model 进行恢复,并且与 TensorFlow Serving 兼容。 SavedModel 指南详细介绍了如何服务/检查SavedModel。 下面的代码说明了保存和恢复模型的步骤。

    # Create and train a new model instance.
    model = create_model()
    model.fit(train_images, train_labels, epochs=5)
    
    # Save the entire model as a SavedModel.
    !mkdir -p saved_model
    model.save('saved_model/my_model')
    
    # my_model directory
    ls saved_model
    
    # Contains an assets folder, saved_model.pb, and variables folder.
    ls saved_model/my_model
    
    # Reload a fresh Keras model from the saved model:
    new_model = tf.keras.models.load_model('saved_model/my_model')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      • 2020-10-14
      • 2019-12-18
      • 2019-12-05
      • 2020-08-13
      • 2019-06-04
      相关资源
      最近更新 更多