Python 如何为DNNClassifier提供numpy数组

Python 如何为DNNClassifier提供numpy数组,python,numpy,tensorflow,Python,Numpy,Tensorflow,我正在尝试创建DNNClassifier,但不知道如何将数据传递到对象中。我的数据文件是使用np.save()创建的.npy文件 训练数据:一个形状数组(106398338),其中106398是数据实例数 训练标签:一个形状数组(106398,97),其中97是我想要预测的类数(热编码) 我得到:ValueError:包含多个元素的数组的真值是不明确的。使用a.any()或a.all() 我试图将这两个(feature_列和feature_标记)都制作成tf.constant bot,但都

我正在尝试创建DNNClassifier,但不知道如何将数据传递到对象中。我的数据文件是使用np.save()创建的.npy文件

  • 训练数据:一个形状数组(106398338),其中106398是数据实例数
  • 训练标签:一个形状数组(106398,97),其中97是我想要预测的类数(热编码)

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

我试图将这两个(feature_列和feature_标记)都制作成tf.constant bot,但都不起作用

我怎样才能修好它


8.0本地回溯(最近一次调用):
文件“nueva.py”,第31行,
在分类器=DNNClassifier中(隐藏单元=[10,20,10],n\u类=97,特征列=特征列)
文件“/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/l‌​earn/python/learn/es‌​“timators/dnn.py”,第296行,
在init self.\u feature\u columns=元组(feature\u columns或[])
ValueError:包含多个元素的数组的真值不明确。使用a.any()或a.all()

如果查看有关该
ValueError..
的其他SO问题,您会发现当您尝试对数组执行某种排序真/假测试时,会出现这种情况

if X>0:....
如果
X
是多元素数组,则产生此错误
X>0
则是真/假值数组。这是模棱两可的

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

另一件事-在报告错误时,还要在堆栈上报告-此错误发生的确切位置?

查看您的代码,我没有看到任何可能触发此错误的测试。这意味着它发生在您调用的一个函数的深处哪个?

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


错误出现在
元组(feature\u列或[])
表达式中。
feature\u columns
参数不应是数组。检查文档

根据这个表达式,我猜测
功能列
应该是默认的
,或者类似
[1,2,3]
的列表:

In [110]: [1,2,3] or []
Out[110]: [1, 2, 3]
In [111]: None or []
Out[111]: []
In [112]: np.array([1,2,3]) or []
....
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
In [113]: 

使用函数
learn。从\u输入推断\u实值\u列\u
,从numpy数组创建
特征\u列
。以下解决方案适合我:

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)

它发生在创建分类器的行中。
feature\u列的形状和数据类型是什么?我们还需要错误堆栈。完整的错误堆栈是:8.0本地回溯(最后一次调用):文件“nueva.py”,第31行,在classifier=DNNClassifier(hidden_units=[10,20,10],n_classes=97,feature_columns=feature_columns)文件“/usr/local/lib/python2.7/dist packages/tensorflow/contrib/learn/python/estimators/dnn.py”,第296行,在init self中。_feature_columns=tuple(feature_columns或[])ValueError:包含多个元素的数组的真值不明确。使用a.any()或a.all()时,feature_列的形状为(106398338),是一个浮点数组。请参见我的编辑。堆栈跟踪很难在注释中读取,但足以说明问题所在。它不是被弃用了吗?
In [110]: [1,2,3] or []
Out[110]: [1, 2, 3]
In [111]: None or []
Out[111]: []
In [112]: np.array([1,2,3]) or []
....
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
In [113]: 
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)