如何用numpy数组给DNNClassifier提供数据

2024-04-19 13:54:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个dnclassifier,但我不知道如何将数据传递到对象。我的数据文件是用创建的.npy文件np.保存(). 在

  • 训练数据:一个shape数组(106398338),其中106398是数据实例的数目。在
  • Training labels:一个shape数组(106398,97),其中97是我要预测的类数(热编码)

import tensorflow as tf
from  tensorflow.contrib.learn import DNNClassifier
import numpy as np

feature_columns = np.load(path_to_file)#learn.infer_real_valued_columns_from_input(iris.data)
feature_tags=np.load(path_to_other_file)

classifier = DNNClassifier(hidden_units=[10, 20, 10], n_classes=97, feature_columns=feature_columns)
classifier.fit(feature_columns, feature_tags, steps=200, batch_size=1000)

predictions = list(classifier.predict(feature_columns, as_iterable=True))
score = metrics.accuracy_score(feature_tags, predictions)

print("Accuracy: %f" % score)

我得到:ValueError:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()

我尝试将这两个(feature_列和feature_标记)都tf.常数但这不管用。在

我怎样才能修好它?在


^{pr2}$

Tags: columns数据fromimporttftensorflowasnp
2条回答

使用函数learn.infer_real_valued_columns_from_input从numpy数组创建feature_columns。以下解决方案适用于我:

X = np.load(path_to_file)
feature_columns = tf.contrib.learn.infer_real_valued_columns_from_input(X)
classifier = DNNClassifier(hidden_units=[10, 20, 10], n_classes=97, feature_columns=feature_columns)

如果再看看其他关于这个的问题ValueError..,你会发现当你试图对一个数组进行排序真/假测试时,就会出现这种情况。在

if X>0:....

如果X是多元素数组,则生成此错误。^{cd3>的数组值为False。这是模棱两可的。在

在确定了基本问题之后,我们需要找到您在哪里进行此类测试。在

另一件事-当报告错误时,也要报告堆栈-这个错误到底发生在哪里?

看看你的代码,我看不出有什么测试可以触发这个错误。这意味着它发生在你所调用的某个函数的内部。哪个?

我猜其中一个函数参数的形式、形状或类型是错误的。在


错误在tuple(feature_columns or [])表达式中。您的feature_columns参数不应是数组。检查文档。在

从这个表达式中,我猜测feature_columns应该是默认的None,或者像{}这样的列表:

^{pr2}$

相关问题 更多 >