通过使用ANTIQUE问答数据集按照教程TF-Ranking for sparse features,我成功地实现了学习排名的方法。
现在,我的目标是将学习到的模型成功保存到磁盘上,这样我就可以轻松加载它,而无需再次进行培训。由于使用了Tensorflow文档,因此<?php
$emailAddress = $_POST["email"];
$firstName = $_POST["firstName"];
$lastName = $_POST["lastName"];
$textMessage = $_POST["message"];
$to = "contact@website.com";
/*standard headers for HTML mail*/
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type:text/html;charset=UTF-8\r\n";
/*Add. headers*/
$headers .= 'From: ' . $emailAddress . "\r\n";
$headers .= 'Reply-to: ' . $emailAddress . "\r\n";
$headers .= 'First name: ' . $firstName . "<br>";
$headers .= 'Last name: ' . $lastName . "<br><br>";
$headers .= 'Message:'."<br><br>";
$status = mail($to, "New client inquiry", $textMessage, $headers);
if($status)
{
echo "<p>Your mail has been send succesfully!</p>";
}
else
{
echo "<p>Your mail has not been delivered, please try again</p>";
}
?>
方法似乎是可行的方法。但是我无法确定如何告诉Tensorflow我的特征结构如何。由于docs here,最简单的方法似乎是调用estimator.export_saved_model()
,这将向我返回所需的inpur接收器函数,该函数必须传递给tf.estimator.export.build_parsing_serving_input_receiver_fn()
函数。但是我如何告诉Tensorflow我从学习到排名模型后得到的特征如何?
根据我目前的理解,该模型具有上下文特征规范和示例特征规范。因此,我想我必须以某种方式将这两个规范组合为一个功能描述,然后可以将其传递给export_saved_model
函数?
答案 0 :(得分:1)
因此,我认为您的做法正确无误;
您可以像这样获得build_ranking_serving_input_receiver_fn
:(用为创建自己的上下文和训练数据的示例结构可能需要的def替换context_feature_columns(...)和example_feature_columns(...)):
def example_serving_input_fn():
context_feature_spec = tf.feature_column.make_parse_example_spec(
context_feature_columns(_VOCAB_PATHS).values())
example_feature_spec = tf.feature_column.make_parse_example_spec(
list(example_feature_columns(_VOCAB_PATHS).values()))
servingInputReceiver = tfr.data.build_ranking_serving_input_receiver_fn(
data_format=tfr.data.ELWC,
context_feature_spec=context_feature_spec,
example_feature_spec=example_feature_spec,
list_size=_LIST_SIZE,
receiver_name="input_ranking_data",
default_batch_size=None)
return servingInputReceiver
然后将其像这样传递给export_saved_model
:
ranker.export_saved_model('path_to_save_model', example_serving_input_fn())
(排名是tf.estimator.Estimator,也许您在代码中将此称为“估计器”)
ranker = tf.estimator.Estimator(
model_fn=model_fn,
model_dir=_MODEL_DIR,
config=run_config)