코드 샘플을 사용한 Keras 레이어 입력 설명
입력 모양, 가중치, 단위, 밝기를 포함한 Keras 레이어 인수 관련 보편적 질문에 대한 간단한 답변을 드리겠습니다.
Created on April 22|Last edited on April 22
Comment
질문: input_shape, units, dim등의 차이 이해하기?
Keras 레이어(레이어 클래스)에 대해input_shape, units, dim,등의 차이를 어떻게 이해해야 하는지 설명해주실 수 있나요?
예를 들어, 문서에서는units가 Keras 레이어의 출력 모양을 지정한다고 나와있습니다.
아래 신경망(neural net) 이미지에서hidden layer1에는 4개의 객체가 있습니다. 이 값이Layer 객체의 units 특성으로 직접 변환되나요? 아니면 Keras의units는hidden layer의 모든 무게에units 수를 곱한 모양과 같은가요?
아래 이미지를 사용하여 모델, 특히 레이어의 속성을 어떻게 이해/시각화할 수 있습니까?

정답
Keras 레이어의 유닛
Keras 레이어에서 단위는 신경 네트워크 구조의 각 층에 있는 뉴런의 수입니다. 예를 들어:
some_layer = tf.keras.layers.Dense(10, activation=None)
유닛의 개수는 10개입니다. 따라서 10개의 뉴런이 있습니다.
위 이미지에서hidden layer 1은 4개, hidden layer 2는 4개, output 레이어는 2개의 유닛이 있습니다.
Keras 레이어의 모양
Keras 레이어에서 모양은 각 차원에 배열 또는 텐서의 요소 수를 나타내는 튜플(tuple)입니다.
예: 모양(3, 4, 4)를 가진 텐서는 3차원이고 첫 번째 차원은 3개의 요소를 가집니다. 이 세 가지 요소에는 각각 4개의 요소가 있고, 이 4개의 요소에는 각각 4개의 요소가 있습니다. 따라서 총3*4*4 = 48개의 요소가 있습니다.
Keras 레이어에 입력 모양
Keras 레이어에서 입력 모양(Input Shape)은 일반적으로 트레이닝 중에 Keras 모델에 제공된 입력 데이터의 모양입니다. 모형은 트레이닝 데이터의 모양을 알 수 없습니다. 다른 텐서(레이어)의 모양은 자동으로 계산됩니다.
각 Keras 레이어 유형에는 특정 치수 수의 입력이 필요합니다.
- 고밀도 레이어에는 (batch_size, input_size)과 같은 입력이 필요합니다.
- 2D 나선형 레이어에는 다음과 같은 입력이 필요합니다.
- channels_last를 사용하는 경우: (batch_size, imageside1, imageside2, channels)
- channels_first를 사용하는 경우: (batch_size, channels, imageside1, imageside2)
- 1D 나선형 및 반복 레이어가(batch_size, sequence_length, features)를 사용됩니���
- 다른 텐서의 모양은Conv2D 레이어의kernel_size와 같은 다른 특수성과 함께 제공된 단위 수를 기반으로 계산됩니다.
Keras 레어어의Weights(가중치)
Keras 레어어에서 가중치는 학습된 수학적 연산을 통해 입력 모양을 출력 모양으로 변환할 수 있는 매트릭스입니다.
가중치는 입력 및 출력 모양을 기준으로 완전히 자동으로 계산됩니다. 다시 말하지만 각 레이어 유형은 특정한 방식으로 작동합니다.
Keras 레이어에서 Dim
일반적으로 dim은 Keras 레이어에서 텐서의 차원 수를 나타냅니다. 예를 들어, 모양(32, 1024)의 텐서는 2차원을 가집니다.
우리는 보통(3,)과 같은 하나의Dim 텐서를 정의합니다. 따라서 이 1차원 입력은 3가지 요소를 가집니다.
Keras의 문제 섹션에서 이미지를 정의해봅시다
다시 위의 문제 섹션에서 이미지를 보고 Keras에서 이미지를 정의해봅시다.

순차적(Sequential) API 사용
from keras.models import Sequentialfrom keras.layers import *model = Sequential()model.add(Input(shape=(3,))) # Input tensormodel.add(Dense(units=4)) # hidden layer 1model.add(Dense(units=4)) #hidden layer 2model.add(Dense(units=1)) #output layer
기능적(Functional) API 사용
from keras.models import Modelfrom keras.layers import *inputs = Input(shape=(3,)) # input tensorhidden1 = Dense(units=4)(inputs) # hidden layer 1hidden2 = Dense(units=4)(hidden1) # hidden layer 2outputs = Dense(units=1)(hidden2) # hidden layer 1#define the model's start and end pointsmodel = Model(inputs, outputs)
각 레이어의 모델 요약과 출력 모양을 살펴봅시다.

그림 1: 모델 개요
Add a comment
Iterate on AI agents and models faster. Try Weights & Biases today.