2017-04-19 10 views
2

私はテンソルフローを使用し始めましたが、DNNClassifierで使用するためにデータを正しくインポートできませんでした。私は実際にhdf5形式のファイルを2つ持っています。これはpandasでインポートします。特徴ベクトルは次元100を有し、特徴が属することができる5つのクラスが存在する。 Iは、例えば、次のコードを使用する場合: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] [ノード:save/restoreV2_2 =復元V2 [dtypes = [DT_FLOAT]、_device = "/ job:localhost/replica:0/task:0/cpu:0"](recv_save/Const_0、save/RestoreV2_2/tensor_names 、save/RestoreV2_2/shape_and_slices)]]

これはなぜ起こりますか?この分類子に適用するためにデータをどのように変換する必要がありますか?

答えて

0

私の解決策: -

model_dir="/tmp/model-1 

にごmodel_dir = "を/ tmp /モデル" に変更し

注: - それは

のような任意の有効な名前で置き換え、モデル-1である必要はありません

model_dir = "/ tmp/model-a .. something like .. ..

関連する問題