2017-04-19 129 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 ..類似的東西..