tensorflow
  • keras
  • 2017-01-24 2 views 3 likes 
    3

    내가 Keras (Tensorflow의 beckend)에 의해이 간단한 신경 네트워크를 구현하기 위해 노력하고있어 :Keras, IndexError : 인덱스는 범위를 벗어날

    model = Sequential() 
    model.add(Dense(input_dim=5, output_dim=1)) 
    model.add(Activation("softmax")) 
    
    model.compile(loss='sparse_categorical_crossentropy', optimizer='sgd', metrics=['accuracy']) 
    
    model.fit(x_train, y_train) 
    
    :

    x_train = df_train[["Pclass", "Gender", "Age","SibSp", "Parch"]] 
    y_train = df_train ["Survived"] 
    
    x_test = df_test[["Pclass", "Gender", "Age","SibSp", "Parch"]] 
    y_test = df_test["Survived"] 
    
    y_train = y_train.values 
    y_test = y_test.values 
    

    그러나이 나는이 부분을 실행할 때

    이 오류가 발생합니다 : IndexError : 인덱스가 범위를 벗어났습니다. 나는 그것이 의 model.fit (x_train, y_train)에 관한 인자라고 가정하고있다. .values ​​으로 numpy 배열로 전달하려고 시도했지만 여전히 동일한 오류가 있습니다. ..

    답변

    2

    Keras는 NumPy와 배열하지 팬더를 기대하고, 그래서 당신은 당신이 Keras API를에 공급되는 모든 데이터를 변환 할 필요가 없습니다 단지 y_train하고 그래서 y_test

    :

    x_train = x_train.values 
    y_train = y_train.values 
    x_test = x_test.values 
    y_test = y_test.values 
    

    또는

    x_train = numpy.asarray(x_train) 
    y_train = numpy.asarray(y_train) 
    x_test = numpy.asarray(x_test) 
    y_test = numpy.asarray(y_test) 
    
    +0

    _.asarray_를 사용할 때 _getueError : 모델 대상을 검사 할 때 오류가 발생했습니다. 예상 dense_2에 모양이 없으므로 (모양이 없음, 2) 모양이 배열이되었습니다 (571 , 1)_. 전에 _.values_를 사용하려고했지만 같은 유형의 오류가 발생했습니다 – Simone

    +0

    as_matrix를 사용해 보셨습니까? (예 : x_train.as_matrix()) –

    +0

    예,하지만 동일한 오류가 발생합니다. 이제는 손실 함수를 "sparse_categorical_crossentropy"에서 "binary_crossentropy"로 변경 한 후 _.asarray_와 함께 작동합니다. – Simone

    관련 문제