>백엔드 개발 >파이썬 튜토리얼 >Keras의 밀집 레이어가 입력 텐서를 평면화합니까?

Keras의 밀집 레이어가 입력 텐서를 평면화합니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-21 07:53:301080검색

Does a Dense Layer in Keras Flatten the Input Tensor?

Keras의 Dense Layer 동작 이해

Keras에서 Dense Layer는 가중치와 입력 텐서 간의 내적을 수행합니다. 문서에 명시된 대로 기본 동작은 입력 텐서의 순위가 2보다 큰 경우 해당 텐서를 평면화하는 것입니다. 그러나 이 문서와 달리 Dense 레이어는 실제로 입력 텐서의 마지막 축에 적용됩니다.

예를 들어 설명해 보겠습니다. 모양이 (n_dim1, n_dim2, ..., n_dimk)인 입력 텐서에 m 단위가 적용된 밀도 레이어를 가정합니다. 출력 형태는 (n_dim1, n_dim2, ..., m)입니다.

이 관찰은 TimeDistributed(Dense(...))와 Dense(...)가 기능적으로 동일하다는 것을 의미합니다. 또한 가중치를 공유하는 Dense 레이어를 적용하면 흥미로운 효과가 나타납니다. 다음 장난감 네트워크를 고려하십시오.

<code class="python">model = Sequential()
model.add(Dense(10, input_shape=(20, 5)))

model.summary()</code>

아래 모델 요약에는 훈련 가능한 매개변수 60개만 표시됩니다.

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense_1 (Dense)              (None, 20, 10)            60        
=================================================================
Total params: 60
Trainable params: 60
Non-trainable params: 0
_________________________________________________________________

이는 Dense 레이어의 각 단위가 각각의 5개 요소 모두에 연결되기 때문에 발생합니다. 동일한 가중치를 가진 입력 행. 결과적으로 10 × 5 10(단위당 바이어스 매개변수) = 60개의 매개변수만 필요합니다.

이 동작을 더 자세히 설명하려면 다음 시각적 표현을 고려하세요.

[밀집 레이어 이미지 Keras에서 2차원 이상의 입력에 적용]

이 이미지에서는 Dense 레이어(빨간색으로 표시)가 3차원 입력 텐서에 적용됩니다. 출력 텐서 역시 3차원이며, 입력 텐서의 각 열은 출력 텐서의 열에 독립적으로 매핑됩니다.

위 내용은 Keras의 밀집 레이어가 입력 텐서를 평면화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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