Skip to main content

입력 Keras 레이어 설명과 코드 예제

Keras 레이어의 인자와 관련된 자주 묻는 질문에 대한 간단한 답변입니다. input shape, weight, units, dim 등을 예시와 함께 설명합니다. 이 글은 AI 번역본입니다. 오역이 있을 수 있으니 댓글로 알려 주세요.
Created on September 12|Last edited on September 12
어떤 레이어에서든 input_shape, units, dim 등의 차이를 어떻게 이해해야 하는지에 대한 공통적인 질문이 있습니다. Keras 레이어(레이어 클래스).
예를 들어, 문서에서는 다음과 같이 설명합니다 units 아래 신경망 이미지에서는 Keras 레이어의 출력 형태를 지정하지만, hidden layer1 유닛이 4개입니다. 이것이 곧바로 다음과 같은 의미인가요? units 의 속성 Layer 객체인가요? 아니면 units Keras에서 은닉층의 모든 가중치의 형태가 유닛 수와 곱해진 값과 동일한가요?
아래 이미지와 함께 모델의 속성, 특히 레이어를 어떻게 이해하고 시각화할 수 있나요?
Try it on Colab Notebook



이 질문에 제대로 답하기 위해 다음 내용을 살펴보겠습니다 …

이 글에서 다룰 내용



Keras 레이어에서 Units란 무엇인가요?

Keras 레이어에서 units는 신경망 아키텍처의 각 레이어에 있는 뉴런의 수. 예를 들어, 다음과 같은 경우:
some_layer = tf.keras.layers.Dense(10, activation=None)
units 수는 10입니다. 따라서 뉴런은 10개입니다.
위 이미지에서, hidden layer 1 유닛이 4개이며, hidden layer 2 유닛이 4개이며, 그리고 output 레이어에는 units가 1개 있습니다.

Keras 레이어에서의 Shape란 무엇인가?

Keras 레이어에서의 shape는 각 차원마다 배열이나 텐서가 몇 개의 요소를 가지는지를 나타내는 튜플.
예를 들어: 다음 형태의 텐서 (3, 4, 4) 3차원이며 첫 번째 차원에 3개의 요소가 있습니다. 이 3개의 각 요소는 4개의 요소를 가지고, 그 4개의 각 요소는 다시 4개의 요소를 가집니다. 따라서 총합은 3*4*4 = 48 요소입니다.

Keras 레이어에서의 입력 형태란 무엇인가?

Keras 레이어에서 입력 형태는 일반적으로 학습 시 Keras 모델에 제공되는 입력 데이터의 형태를 의미합니다. 모델은 학습 데이터의 형태를 스스로 알 수 없습니다. 다른 텐서(레이어)의 형태는 자동으로 계산됩니다.
각 Keras 레이어 유형은 특정 차원의 입력을 요구합니다:
  • Dense 레이어 다음과 같은 입력을 요구합니다 (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)
  • 다른 텐서의 형태 제공된 units 수와 다음과 같은 기타 특성에 따라 계산됩니다 kernel_size 에서 Conv2D 레이어.

Keras 레이어에서 Weights란 무엇인가요?

Keras 레이어에서 weights는 어떤 연산을 통해 입력 형태를 출력 형태로 변환할 수 있게 해주는 행렬입니다 학습된 수학적 연산.
가중치는 입력과 출력의 형태에 따라 전적으로 자동으로 계산됩니다. 다시 말해, 각 레이어 유형은 고유한 방식으로 동작합니다.

Keras 레이어에서 Dim은 무엇인가요?

일반적으로 dim은 Keras 레이어에서 텐서가 가진 차원의 수를 의미합니다. 예를 들어, 모양이 있는 텐서는 (32, 1024) 2차원입니다.
보통 1차원 텐서는 다음과 같이 정의합니다 (3,)따라서 이 1차원 입력에는 3개의 요소가 있습니다.

Keras 문제 섹션의 입력 레이어 이미지

다시 한 번, 위의 문제 섹션에 있는 이미지를 살펴보고, Keras에서 그 이미지를 정의해 봅시다.

Try it on Colab Notebook


Sequential API 사용

from keras.models import Sequential
from keras.layers import *

model = Sequential()

model.add(Input(shape=(3,))) # Input tensor
model.add(Dense(units=4)) # hidden layer 1
model.add(Dense(units=4)) #hidden layer 2
model.add(Dense(units=1)) #output layer

Functional API 사용

from keras.models import Model
from keras.layers import *


inputs = Input(shape=(3,)) # input tensor
hidden1 = Dense(units=4)(inputs) # hidden layer 1
hidden2 = Dense(units=4)(hidden1) # hidden layer 2
outputs = Dense(units=1)(hidden2) # hidden layer 1

#define the model's start and end points
model = Model(inputs, outputs)
모델 요약과 각 레이어의 출력 형태를 살펴봅시다.

그림 1: 모델 요약
이 답변은 Stack Overflow에서 영감을 받았습니다 스레드.

관련 읽을거리



이 글은 AI로 번역되었습니다. 오역이 있을 경우 댓글로 알려주세요. 원문 보고서는 다음 링크에서 확인할 수 있습니다: 원문 보고서 보기
Joseph Jung
Joseph Jung •  
Thank you for this article. It cleared up a lot of question marks for me. However, could you please verify something for me? In the "What Are Units In a Keras Layer?" section, it states that the output layer has 2 units. I see 1. What am I missing?
1 reply