본문 바로가기

ML & AI

InvalidArgumentError : Graph execution error

간단한 케라스 딥러닝 모델을 구축하던 도중, 다음과 에러가 떠서 애를 먹었다.

 

Code:
InvalidArgumentError: Graph execution error:

Detected at node 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits'

Node: 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits'
logits and labels must have the same first dimension, got logits shape [2621440,2] and labels shape [128]
     [[{{node sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits}}]] [Op:__inference_train_function_2374]

 

유달리 loss function으로 sparse_categorical_crossentropy를 사용할 때만 나타났는데, 이는 입력 데이터의 차원문제일 가능성이 크다.

 

나는 입력으로 2차원 배열을 reshape메서드를 이용해 1차원 배열로 변환하여 입력했는데, 그 과정에서 무언가 맞지 않았나보다.

 

2차원 배열을 수동으로 변환하는 것 보다는, keras.layer.flatten을 이용하여 차원을 변환하면 다음과 같은 에러를 피할 수 있다.