TensorFlow 디렉토리의 예를 모델로하여 Deep Neural Network 분류기를 작성하려고합니다. 예제의 코드는 여기에 표시됩니다 : 내 홍채 데이터와 동일한 데이터 (연속 기능 값과 이산 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 또는 호환 가능해야합니다.
이y_train = y_train.astype(int)
가 나는 그것의 확인 : 그래서이 내 y_train가 부동이기 때문에, 나는 내가 그렇게 사용합니까 int로 캐스팅해야한다는 것을 의미 파악 'float64'
대신 DTYPE있어 int64를 입력하고 분류자를 다시 실행하지만 다음 오류가 발생합니다.
ValueError : 대상이 주어진 정보와 호환되지 않습니다. TensorSignature (dtype = tf.float64, shape = TensorShape ([차원 (없음)]), is_sparse = False) 필요한 대상 : Tensor (출력 : 0, 모양 = (?,), dtype = int64) .
이제 float64가 필요하다고 말합니다. 그래서 내가 뭘 잘못하고 있는지 혼란스러워. 어떤 제안이나 명백한 실수?
'Target'열이 'float'유형으로 해석됩니다. 데이터 [[ 'Target']] = 데이터 [[ 'Target']] .statype (int)을 사용하여 'int'유형으로 변환 할 수 있습니다. –
이미 시도해 봤습니다. 보시다시피, y_train은 내 타겟이고 int 유형으로 캐스팅하지만 이해가되지 않는 다른 오류가 발생합니다. –