2016-10-26 48 views
1

我想用Tensorflow编写一个相当简单的分类器。分类器将采用128个元素的向量并输出2个类别的响应。Tensorflow DNNClassifier ValueError

下面是代码:

 

import tensorflow as tf 
import numpy as np 
import pandas 
import time 

# Data sets 
TRAINING = "james/data/tensorflow/matching/training.csv" 
TEST = "james/data/tensorflow/matching/testing.csv" 

# Load datasets. 
training_set = tf.contrib.learn.datasets.base.load_csv_with_header(
    filename=TRAINING, 
    target_dtype=np.int, 
    features_dtype=np.float32 
    ) 

test_set = tf.contrib.learn.datasets.base.load_csv_with_header(
    filename=TEST, 
    target_dtype=np.int, 
    features_dtype=np.float32) 

# Specify that all features have real-value data 
feature_columns = [tf.contrib.layers.real_valued_column("", dimension=128)] 

# Build 3 layer DNN with 10, 20, 10 units respectively. 
classifier = tf.contrib.learn.DNNClassifier(feature_columns=feature_columns, 
              hidden_units=[256,128,64, 32, 8], 
              n_classes=2, 
              ) 

print(training_set.target) 
print(training_set.data) 

# Fit model. 
classifier.fit(x=training_set.data, 
       y=training_set.target, 
       max_steps=10000 
       ) 
 

的代码是完全基于Tensorflow网站上找到的代码。

我可以看到training_set.datatraining_set.target都正确解析。

在分级阶段,我得到一个错误:

 

    ValueError        Traceback (most recent call last) 
ipython-input-9-aae84e4745a3 in module() 
    35 classifier.fit(x=training_set.data, 
    36    y=training_set.target, 
---> 37    max_steps=10000 
    38    ) 
    39 
 

我也是在跟踪的底部得到一个错误说:

ValueError: Shapes (?, 1) and (?,) are incompatible 

我使用的是IPython的笔记本电脑中的程序,安装了最新的TensorFlow库(昨晚的夜晚版本)。

+0

,包括堆栈跟踪?我没有足够的信息来诊断问题。 –

回答

0

在CSV文件中的第一行应该是描述批其数据的此功能工作,像这样一个标题:

n_samples, n_features, label_name_1, label_name_2, label_name_3 
例如,如果你有100个例子csv文件

, 5个功能只有两个标签,说“猫”和“狗”,该CSV的第一行应该是这样的:

100, 5, cat, dog 

这就是它! (从Error loading .csv into tensorflow拍摄)

,如果不解决这个问题,它可能与此有关的bug,这尚未您可以发布完整的错误处理https://github.com/tensorflow/tensorflow/issues/5284

相关问题