다중 출력 다중 클래스 분류를 수행하기 위해 TensorFlow를 사용하여 길쌈 신경 네트워크를 학습하고 싶습니다.TensorFlow로 다중 클래스 다중 출력 CNN을 배우는 방법
예 : 우리가 MNIST 샘플 세트를 가져 와서 두 개의 랜덤 이미지를 하나씩 두 개 결합한 다음 결과 이미지를 분류하고 싶다면. 분류 결과는 이미지에 표시된 두 자릿수 여야합니다.
따라서 네트워크의 출력은 [-1, 2, 10] 모양을 가질 수 있습니다. 첫 번째 차원은 일괄 처리이고 두 번째는 출력을 나타내며 (세 번째 숫자는 첫 번째 또는 두 번째 숫자) 세 번째 숫자는 출력입니다. 표시된 숫자의 "보통"분류.
지금 당장 인터넷 검색을 시도했지만 유용한 것을 찾을 수 없었습니다. 또한 다중 출력 다중 클래스 분류가이 작업의 올바른 이름인지 여부는 알 수 없습니다. 그렇지 않은 경우 올바른 이름은 무엇입니까? 손실 기능/교육 작업을 구축하기 위해해야 할 일을 설명하는 링크/자습서/문서/서류가 있습니까?
내가 시도한 것은 tf.split을 사용하여 네트워크의 출력을 단일 출력으로 분할 한 다음 모든 단일 출력에 softmax_cross_entropy_with_logits를 사용하는 것이 었습니다. 결과는 모든 출력에 대해 평균을 냈지만 작동하지 않는 것 같습니다. 이것도 합리적인 방법입니까?
음, 내 질문은 그 손실 기능이 어떻게 생겼는지에 관한 것입니다. 이 손실 함수를 계산하기 위해 호출 할 수있는 tensorflow 메서드가 있습니까? 그렇지 않다면 어떻게 계산합니까? – andy
죄송 합니다만, 저는 tensorflow에 익숙하지 않습니다.하지만 튜토리얼을 끝내면서 y_는 크로스 엔트로피에서 한 예를 들어 몇 가지 값만 가져야한다고 가정합니다. cross_entropy = tf.reduce_mean (tf.nn. softmax_cross_entropy_with_logits (y, y_)) 시도해 봤어? 작동하지 않는다면 레이블이 매트릭스가 아닌 벡터가되도록 직접 비용 함수를 코딩하십시오. 예를 들어, T.log (self.p_y_given_x) [T.arange (y.shape [0]), y])와 y (labels)의 행렬을 만들 것입니다. 예제 별 레이블. – Snate