2017-04-19 128 views
2

我刚开始使用tensorflow,但我没有正确导入数据以与DNNClassifier一起使用。我实际上有两个hdf5格式的文件,我用熊猫导入。特征向量具有维度100,并且特征可以属于5个类别。如果我使用例如下面的代码:Tensorflow数据导入

import pandas as pd 
import numpy as np 
import tensorflow as tf 

#Data 
train = pd.read_hdf("train.h5", "train") 
test = pd.read_hdf("test.h5", "test") 

Y=train.iloc[0:,0] 
X=train.iloc[0:,1:] 
X_t=test.iloc[0:,0:] 

Y=np.array(Y.values).astype('int') 
X=np.array(X.values).astype('double') 
X_t=np.array(X_t.values).astype('double') 

#Train 
feature_columns = [tf.contrib.layers.real_valued_column("", dimension=100)] 
classifier = tf.contrib.learn.DNNClassifier(feature_columns=feature_columns, 
              hidden_units=[10, 20], 
              n_classes=5, 
              model_dir="/tmp/model") 
# Define the training inputs 
def get_train_inputs(): 
    x = tf.constant(X) 
    y = tf.constant(Y) 
    return x, y 

#fit 
classifier.fit(input_fn=get_train_inputs, steps=1000) 
predictions = list(classifier.predict(input_fn=get_train_inputs)) 
print(predictions) 

我得到错误:InvalidArgumentError(参见上述用于回溯):形状在规格shape_and_slice [100,10]不匹配存储在检查点的形状:[1, 10] [[Node:save/RestoreV2_2 = RestoreV2 [dtypes = [DT_FLOAT],_device =“/ job:localhost/replica:0/task:0/cpu:0”](_ recv_save/Const_0,save/RestoreV2_2/tensor_names ,保存/ RestoreV2_2/shape_and_slices)]]

我不明白为什么会发生这种情况?我应该如何转换我的数据以应用于此分类器?

回答

0

我的解决方案: -

你model_dir = “/ tmp目录/模式” 更改为

model_dir="/tmp/model-1 

注: - 它不必是模型1,与像

任何有效的名称替换它

model_dir =“/ tmp/model-a ..类似的东西..