728x90
반응형
Sung Kim 님의 "모두의 딥러닝" 강의노트입니다
좋은 강의 감사드립니다!
https://www.youtube.com/watch?v=mQGwjrStQgg&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=5
Cross_entropy
One_hot
Reshape
Soft_cross_entropy_with_logits
-> logits = tf.matmul(X,W) + b logit( Score값 )
Hypothesis = tf.nn.softmax(logits) 최종 확률의 형태로 나오게 됨
Y 는 one-hot 으로 주어짐 / 이를 hypo의 log와 곱하면 됨
더 간편하게 하기 위해 Soft_cross_entropy_with_logits함수를 사용함 logit에는 softmax하지 않은 처음 logit을 집어넣고 labels에는 y-one-hot을 넣는다.
그 후 평균을 내어 cost로 사용함!
동물의 종을 예측하는 Classification !
Y가 1개이고 총 n개의 행이어서 [None,1]로 shape정함
근데 Y의 값이 0~6까지 이기에 one-hot으로 바꾸는 과정이 필요함
Y값의 범위를 말해줘야함 0~6 그리고 몇 개의 클래스를 가지는지 ( = 7) 말해야함
하지만 그냥 tf.one_hot을 실행하게 되면 기존 rank N인 인풋을 넣으면 N+1의 output을 내놓게 된다. [[0],[3]] => [[[1000000]],[[0001000]]] 처럼 2차원 랭크로 나오게 됨
Rank =2 -> rank = 3
복잡해지기 때문에 reshape을 사용함!
원하는 shape이 (N,7) 이다
Reshape이 된다면 [[1000000],[0001000]]으로 기존 rank를 유지할 수 있다.
[-1, nb_classes] 로 원하는 shape의 모양으로 바꿔준다.
flatten이라는 것은 [[ 1],[0 ]] -> [1,0]으로 바꿔주는 것
zip은 각각의 element들을 묶어 주는 것
728x90
반응형