2016-10-26 76 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

相關問題