4

我目前正在使用 tf 1.4,我需要帮助查看tf.contrib.factorization.KMeansClustering估算器的预测。我当前的代码段如下所示:

km = KMeansClustering(num_clusters=8,initial_clusters=KMeansClustering.KMEANS_PLUS_PLUS_INIT,model_dir=MODEL,relative_tolerance=0.01)

result = km.train(input_fn=lambda: gen_input(body))

input_fn = tf.estimator.inputs.pandas_input_fn(x={'x':tst}, shuffle=False)

y = result.predict(input_fn)

其中 body 和 tst 是 pandas 数据帧。print(y)给出:

<generator object Estimator.predict at 0x11ebecba0>

并尝试我搜索过的东西,比如调用print(list(y))print(next(y))或者遍历 y,比如:

for i in y:
    ...

for i in y.items():
    ...

for i in enumerate(y):
    ...

等,给出错误TypeError: data must be either a numpy array or pandas DataFrame if pandas is installed; got dict。我找不到任何其他方法可以尝试在线打印。谢谢

4

1 回答 1

-1

您的代码太少,无法确认错误/缺失的内容。此外,至少需要完整的堆栈跟踪。添加更多信息后,这个答案可能会很好。

是不是您期望调用pandas_input_fn返回的内容与您期望的不同?它返回一个带有签名的函数有关详细信息,()->(dict of features, target)请参阅文档

此外,您似乎没有运行 TensorFlow session。在您这样做之前,所有张量、计算(在您的情况下是预测)等都只是图表的一部分,它们只有在运行 TF 会话后才会有值。

有关更多详细信息,请参阅这些文档

于 2018-02-05T07:41:48.310 回答