RyanKor / 2021-google-ml-bootcamp

Google Machine Learning Bootcamp 2021
13 stars 0 forks source link

[Mission4 Assignment Error] Tensorflow Intro Assignment Bug #11

Closed RyanKor closed 3 years ago

RyanKor commented 3 years ago

프로젝트 레포

1. 에러 발생 경위 : 연습문제 3번의 one_hot_matrix문제를 해결하는 과정에서 발생

image

위의 이미지를 보면 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가 작성된 셀은 편집 모드가 지원되지 않음)

image


3. 연쇄 에러 : Exercise 6 - compute_cost

그리고 이후 연습문제들은 테스트 케이스 통과가 정상적으로 잘 되다가 마지막 문제에서 new_y_train을 사용하는 과정에서 다시 에러 발생

image

해당 문제는 new_y_train 변수의 차원을 수정해줘야하는데, 수정이 불가능하므로 에러 수정 불가.

이에 따라 후반부 모델 성능 평가와 결과 예측치를 작업하는 결과 값이 모두 엉망이 되어버림


4. 결과 예측 그래프 이미지

image


5. 경과

결과는 코세라 측에 문의를 진행 중이며, 답변에 따라 해결되면 해당 이슈 close 예정

RyanKor commented 3 years ago

Error 1 Solution

one_hot = tf.reshape(tf.one_hot(label,depth,axis = 0), [depth, ])을 사용해서 기존의 (depth)라고 되어 있던 것을 리스트 형태로 변경한다.

이유

image

image

RyanKor commented 3 years ago

Error 2 Solution - Exercise 6 : Compute_cost

이것도 엄밀히 말하면 프레임워크 사용 미숙에서 온 에러다.

cost = tf.reduce_mean(tf.keras.losses.categorical_crossentropy(y_pred=tf.transpose(logits), y_true=tf.transpose(labels), from_logits=True))

가 정답인데 예측값과 실제값을 모두 전치행렬 처리해서 연산해줘야한다.

image

RyanKor commented 3 years ago

결과 예측 그래프 (올바른 형태)

위의 모든 에러를 해결하면, 제대로 학습된 형태의 그래프를 볼 수 있다.

image

image

All Errors Solved!