Python 如何使用Tensorflow排名进行预测
我目前正在使用TensorFlow排名模块进行推荐任务。我用完全相同的代码和相同的数据库复制了这个,这是雅虎学习排名的著名数据集 该模型运行完美,并生成预期结果,但正如您可能注意到的,教程没有说明如何进行预测,我尝试了本文中发布的解决方案以及以下函数Python 如何使用Tensorflow排名进行预测,python,tensorflow,machine-learning,deep-learning,ranking,Python,Tensorflow,Machine Learning,Deep Learning,Ranking,我目前正在使用TensorFlow排名模块进行推荐任务。我用完全相同的代码和相同的数据库复制了这个,这是雅虎学习排名的著名数据集 该模型运行完美,并生成预期结果,但正如您可能注意到的,教程没有说明如何进行预测,我尝试了本文中发布的解决方案以及以下函数 def predict_input_fn(features): iterator_initializer_hook = IteratorInitializerHook() features_plac
def predict_input_fn(features):
iterator_initializer_hook = IteratorInitializerHook()
features_placeholder = {
k: tf.compat.v1.placeholder(v.dtype, v.shape)
for k, v in six.iteritems(features)
}
#labels_placeholder = tf.compat.v1.placeholder(labels.dtype, labels.shape)
dataset = tf.data.Dataset.from_tensors(
(features_placeholder))
iterator = tf.compat.v1.data.make_initializable_iterator(dataset)
feed_dict = {}
feed_dict.update(
{features_placeholder[k]: features[k] for k in features_placeholder})
iterator_initializer_hook.iterator_initializer_fn = (
lambda sess: sess.run(iterator.initializer, feed_dict=feed_dict))
features = iterator.get_next()
return features
gen_predictions = estimator.predict(input_fn=lambda: predict_input_fn(features_vali))
其中,features_vali来自教程中的这一行代码
features_vali, labels_vali = load_libsvm_data(FLAGS.vali_path,FLAGS.list_size)
我所尝试的一切都会产生相同的错误:
ValueError:无法将包含630600个元素的张量重塑为包含输入形状:[6306100,1],2和>的>“transform/encoding\u layer/1/Reformate”(op:“Reformate”)的形状[6306,1](6306个元素),输入张量计算为部分形状:输入1=[6306,1]
6306是我想要预测的查询,100是列表大小参数(即查询100个文档)
我很确定我在predict\u input\u fn中遗漏了一些内容,但我找不到错误检查可以帮助您解决问题。谢谢