我正在尝试构建一个深层神经网络分类器,它模仿了TensorFlow目录中的示例。示例代码如下所示:def main(unused_argv):
# Load dataset.
iris = learn.datasets.load_dataset('iris')
x_train, x_test, y_train, y_test = cross_validation.train_test_split(
iris.data, iris.target, test_size=0.2, random_state=42)
# Build 3 layer DNN with 10, 20, 10 units respectively.
classifier = learn.DNNClassifier(hidden_units=[10, 20, 10], n_classes=3)
# Fit and predict.
classifier.fit(x_train, y_train, steps=200)
score = metrics.accuracy_score(y_test, classifier.predict(x_test))
print('Accuracy: {0:f}'.format(score))
我做的是完全相同的事情,除了我使用我的数据,这是相同的虹膜数据(连续的特征值和离散的0或1目标值)。我的数据示例如下:
^{pr2}$
我用以下代码读取数据:def extract_examples_labels(filepath):
data = pd.read_csv(filepath).as_matrix()
num_inputs = len(data[0])-1
data_examples = data[:,range(num_inputs)]
data_labels= data[:,len(data[0])-1]
return data_examples, data_labels
然后我做了与TensorFlow示例完全相同的事情,但是我使用了我的数据。但是,我一直得到一个错误,它说:
值错误:目标的数据类型应为int32、int64或兼容。取而代之的是dtype:'float64'
所以我想这意味着,因为我的y峎火车是一个浮动,我需要把它转换成int,所以我使用:y_train = y_train.astype(int)
我确认其类型为int64并再次运行分类器,但得到以下错误:
值错误:目标与给定信息不兼容。给定目标:张量(“输出:0,形状=(?,),dtype=int64),必需的签名:TensorSignature(dtype=tf.float64型,shape=TensorShape([Dimension(None)]),is_sparse=False)。
现在它说它想要一个浮动64。所以我很困惑我做错了什么。有什么建议或明显的错误吗?在