>  기사  >  백엔드 개발  >  다차원 입력이 있는 Keras Dense Layer보다 Flatten 또는 Reshape가 먼저 수행됩니까?

다차원 입력이 있는 Keras Dense Layer보다 Flatten 또는 Reshape가 먼저 수행됩니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-21 07:57:02641검색

Does Flatten or Reshape Precede a Keras Dense Layer with Multi-Dimensional Input?

입력 모양 오류: 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 레이어의 각 단위는 동일한 가중치를 가진 입력에 연결됩니다. 이는 다차원 입력에 적용된 Dense 레이어가 행 전체에 걸쳐 공유 가중치를 효과적으로 구현한다는 것을 의미합니다.
  • TimeDistributed와의 동등성: 시계열 데이터의 경우 TimeDistributed(Dense(...) )는 이제 단일 단계 예측 작업의 Dense(...)와 동일합니다.

시각적 일러스트레이션

더 나은 이해를 위해 다음을 고려하세요. 그림:

[행 간에 가중치를 공유하여 조밀한 레이어가 다차원 입력에 어떻게 적용되는지 보여주는 다이어그램 이미지]

결론

앞서 언급한 오류를 방지하려면 적용하기 전에 Dense 레이어에 대한 입력이 평면화되었는지 확인하세요. 또는 특정 네트워크 아키텍처에 대한 의미와 잠재적 이점을 고려하여 다차원 입력을 처리할 때 밀도 계층의 새로운 동작을 수용하세요.

위 내용은 다차원 입력이 있는 Keras Dense Layer보다 Flatten 또는 Reshape가 먼저 수행됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.