Closed RyanKor closed 3 years ago
one_hot = tf.reshape(tf.one_hot(label,depth,axis = 0), [depth, ])
을 사용해서 기존의 (depth)
라고 되어 있던 것을 리스트 형태로 변경한다.지금 이 과제에서 사용하는 것은 np.array
가 아니라 Tensor
를 사용하는 것이다.
Tensor
는 3차원 배열이다. 그에 반해 np.array
로 구현하면 2차원 배열이 구현되기 때문에 차원 문제가 발생한다.
그래서 이걸 해결하기 위해 아주 사소한 차이인 [depth, ]
를 이용해서 문제를 풀면 해당 문제 테스트 케이스 통과와 함께 2번째 에러 사항도 해결하게 된다.
이것도 엄밀히 말하면 프레임워크 사용 미숙에서 온 에러다.
cost = tf.reduce_mean(tf.keras.losses.categorical_crossentropy(y_pred=tf.transpose(logits), y_true=tf.transpose(labels), from_logits=True))
가 정답인데 예측값과 실제값을 모두 전치행렬 처리해서 연산해줘야한다.
위의 모든 에러를 해결하면, 제대로 학습된 형태의 그래프를 볼 수 있다.
프로젝트 레포
1. 에러 발생 경위 : 연습문제 3번의
one_hot_matrix
문제를 해결하는 과정에서 발생위의 이미지를 보면
one_hot = tf.reshape(tf.one_hot(label, depth, axis=0), (depth))
라고 코드를 작성해야 테스트 케이스가 통과하는 것을 볼 수 있음.2. 연쇄 에러 :
new_y_test / new_y_train
변수 지정그러나 그 아래 코드인
new_y_test / new_y_train
를 작성하는 과정에서 one_hot_matrix 코드를one_hot = tf.reshape(tf.one_hot(label, depth, axis=0), (depth,1))
로 reshape해주지 않으면 에러가 발생함(
new_y_test / new_y_train
가 작성된 셀은 편집 모드가 지원되지 않음)3. 연쇄 에러 :
Exercise 6 - compute_cost
그리고 이후 연습문제들은 테스트 케이스 통과가 정상적으로 잘 되다가 마지막 문제에서 new_y_train을 사용하는 과정에서 다시 에러 발생
해당 문제는 new_y_train 변수의 차원을 수정해줘야하는데, 수정이 불가능하므로 에러 수정 불가.
이에 따라 후반부 모델 성능 평가와 결과 예측치를 작업하는 결과 값이 모두 엉망이 되어버림
4. 결과 예측 그래프 이미지
5. 경과
결과는 코세라 측에 문의를 진행 중이며, 답변에 따라 해결되면 해당 이슈
close
예정