AI

DL : input, output, y_train shape/Keras에서 주의할 점

월곡동로봇팔 2020. 5. 19. 18:47

딥러닝은 애초에 행렬의 연산들이 모여있기 때문에, 

 

  1. 내가 input을 하는 것의 shape가 뭔지?
  2. output의 shape가 뭔지?

이 두가지의 shape가 맞지 않는다면 계속 error가 난다.

 

cnn = keras.Sequential([
    keras.layers.Dense(320, activation='relu'),
    keras.layers.Dropout(.2),
    keras.layers.Dense(160, activation='relu'),
    keras.layers.Dense(80, activation='relu'),
    keras.layers.Dropout(.2),
    keras.layers.Dense(64, activation='relu'),
    keras.layers.Dense(32,activation='relu'),
    keras.layers.Dropout(.2),
    keras.layers.Dense(8, activation='relu'),
    keras.layers.Dense(2, activation='sigmoid')
])

다음과 같은 code가 있다고 할 때, 마지막 code에서 activation을 sigmoid로 한 부분을 살펴보면, shape가 2이다.

따라서 y_train도 shape 받는 부분이 2여야 한다... (이 부분이 계속 안맞아서 엄청 고생했다.) 다음부터 input의 shape와 output의 shape, y_train의 shape가 서로 상응하는지 잘 지켜보자