입력 모양 오류: Keras Dense Layer의 Flatten vs. Reshape
일반적인 Keras 네트워크에서 Dense 레이어는 다음과 같은 평면화된 입력 데이터를 기대합니다. 단일 차원. 그러나 더 높은 차원의 입력 데이터가 있는 Dense 레이어를 사용할 때 일반적인 오류가 발생합니다. 이로 인해 다음과 같은 결과가 나올 수 있습니다.
<tf.Tensor 'dense_2/add:0' shape=(?, 2, 4) dtype=float32>
Understanding the Discrepancy
Dense를 적용하기 전에 고차원 입력이 평면화된다는 문서와는 반대로 레이어의 경우 Keras의 최근 업데이트로 인해 이 동작이 변경되었습니다. 이제 레이어는 입력 텐서의 마지막 축에 독립적으로 적용됩니다.
위 예에서 입력 모양은 (2, 3)입니다. 4개 단위의 Dense 레이어를 각 행에 별도로 적용하여 (2, 4)의 출력 형태가 됩니다.
의미 및 고려 사항
이 변경 사항은 의미:
시각적 일러스트레이션
더 나은 이해를 위해 다음을 고려하세요. 그림:
[행 간에 가중치를 공유하여 조밀한 레이어가 다차원 입력에 어떻게 적용되는지 보여주는 다이어그램 이미지]
결론
앞서 언급한 오류를 방지하려면 적용하기 전에 Dense 레이어에 대한 입력이 평면화되었는지 확인하세요. 또는 특정 네트워크 아키텍처에 대한 의미와 잠재적 이점을 고려하여 다차원 입력을 처리할 때 밀도 계층의 새로운 동작을 수용하세요.
위 내용은 다차원 입력이 있는 Keras Dense Layer보다 Flatten 또는 Reshape가 먼저 수행됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!