我剛開始使用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)]]
我不明白爲什麼會發生這種情況?我應該如何轉換我的數據以應用於此分類器?