私は、TensorFlowディレクトリの例の後にモデル化されたディープニューラルネットワーク分類器を構築しようとしています。例のコードは、ここに示されています:私は私のアイリスデータと同じであるデータ、(連続特徴量と離散0または1のターゲットを使用してい除き、私はまったく同じことをやっているTensorFlow/Sklearnディープニューラルネットワーク分類器型エラー
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))
値)。私のデータのサンプルがここに示されています:
G1 G2 G3 G4 Target
7.733347 6.933914 6.493334 5.31336 0
6.555225 6.924448 6.353376 5.568334 1
7.515558 6.326627 6.197123 5.565245 0
7.132243 6.733111 7.107221 5.681575 1
私は次のコードで私のデータを読んでいる:
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の例のように、まったく同じことを行うが、私は私を使用します代わりにデータ。しかし、私は次のようなエラーが表示され続けます:
ValueError:ターゲットのdtypeはint32、int64またはcompatibleである必要があります。代わりにDTYPEました:
y_train = y_train.astype(int)
私はそののを確認します。だから私は、これは私のy_trainがfloatであることから、私はので、私はそう使用しないint型にキャストする必要があることを意味する「のfloat64」
を把握しますint64と入力して再度分類器を実行しますが、次のエラーが表示されます。
ValueError:ターゲットが特定の情報と互換性がありません。 TensorSignature(dtype = tf.float64、shape = TensorShape([Dimension(None)])、is_sparse = False)必要なシグネチャ:Tensor( "output:0"、shape =(?,)、dtype = int64) 。
今、float64が必要です。だから、私が間違っていることを混乱させる。任意の提案や明白な間違い?
あなたの 'Target'カラムは' float'型として解釈されています。データ[['Target']] = data [['Target']] .statype(int)を使用して、int型として変換することができます。 –
私はすでにそれを試みました。ご覧のとおり、y_trainは私のターゲットで、int型にキャストしますが、私は理解していない別のエラーが発生します。 –