keras.layers.core.Dense(units, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)
일반적인 연결 밀도가 높은 신경망 계층(Densely-connected NN layer)입니다.
Dense
는 다음과 같은 작업을 구현합니다:output = activation(dot(input, kernel) + bias)
이 때 activation
은 요소 단위의 활성화 함수로 activation
인수로 넘겨지고, kernel
은 계층에 의해 만들어진 가중치의 행렬이며, bias
는 계층에 의해 만들어진 편향 벡터입니다(use_bias
가 True
일 때만 적용할 수 있습니다).
kernel
과의 첫 내적에 앞서 평탄화(flatten) 됩니다.예제
# as first layer in a sequential model:
model = Sequential()
model.add(Dense(32, input_shape=(16,)))
# now the model will take as input arrays of shape (*, 16)
# and output arrays of shape (*, 32)
# after the first layer, you don't need to specify
# the size of the input anymore:
model.add(Dense(32))
인수
a(x) = x
).kernel
가중치 행렬을 위한 초기화기입니다(초기화기를 참조).kernel
가중치 행렬에 적용되는 정규화기 함수입니다(정규화기를 참조).kernel
가중치 행렬에 적용되는 제한 함수입니다(제한을 참조).입력 형태
다음과 같은 형태의 n차원 텐서 입니다: (batch_size, ..., input_dim)
.(batch_size, input_dim)
과 같은 2차원 입력 형태로 가장 흔히 쓰입니다.
출력 형태
다음과 같은 형태의 n차원 텐서 입니다: (batch_size, ..., units)
. 예를 들어, (batch_size, input_dim)
과 같은 형태의 2차원 입력에 대해 (batch_size, units)
과 같은 2차원 형태로 출력합니다.
keras.layers.core.Activation(activation)
출력에 대해 활성화 함수를 적용합니다.
인수
입력 형태
임의입니다. 이 계층을 모델의 첫번째 계층으로 쓰고자 할 때에는 키워드 인수 input_shape
(샘플 축을 포함하지 않는 정수 튜플)을 사용하세요.
출력 형태
입력과 동일한 형태 입니다.
keras.layers.core.Dropout(rate, noise_shape=None, seed=None)
입력에 대해 탈락(dropout)을 적용시킵니다.
탈락은 훈련 중 무작위로 각 업데이트마다 단위 입력을 일정 'rate'로 0으로 설정하여 과적합(overfitting)을 방지하도록 도움을 줍니다.
인수
(batch_size, timesteps, features)
과 같은 입력 형태에 대해 모든 'timesteps'에 동일하게 탈락 마스크를 적용하고자 한다면 noise_shape=(batch_size, 1, features)
과 같이 쓸 수 있습니다.참고
keras.layers.core.Flatten()
입력을 평탄화 합니다. batch의 크기에는 영향을 미치지 않습니다.
예제
model = Sequential()
model.add(Convolution2D(64, 3, 3,
border_mode='same',
input_shape=(3, 32, 32)))
# now: model.output_shape == (None, 64, 32, 32)
model.add(Flatten())
# now: model.output_shape == (None, 65536)
keras.layers.core.Reshape(target_shape)
출력의 형태를 다른 형태로 바꾸어 줍니다.
인수
입력 형태
임의이나 입력 형태의 모든 차원을 반드시 고정되어 있어야 합니다. 이 계층을 모델의 첫번째 계층으로 쓰고자 할 때에는 키워드 인수 input_shape
(batch 축을 포함하지 않는 정수 튜플)을 사용하세요.
출력 형태
(batch_size,) + target_shape
의 형태입니다.
예제
# as first layer in a Sequential model
model = Sequential()
model.add(Reshape((3, 4), input_shape=(12,)))
# now: model.output_shape == (None, 3, 4)
# note: `None` is the batch dimension
# as intermediate layer in a Sequential model
model.add(Reshape((6, 2)))
# now: model.output_shape == (None, 6, 2)
# also supports shape inference using `-1` as dimension
model.add(Reshape((-1, 2, 2)))
# now: model.output_shape == (None, 3, 2, 2)
keras.layers.core.Permute(dims)
주어진 패턴에 따라 입력의 차원을 교환합니다.
예를 들어 RNN과 CNN을 서로 연결하거나 할 때 유용합니다.
예제
model = Sequential()
model.add(Permute((2, 1), input_shape=(10, 64)))
# now: model.output_shape == (None, 64, 10)
# note: `None` is the batch dimension
인수
(2, 1)
는 첫번째 차원과 두번째 차원을 교환합니다.입력 형태
임의입니다. 이 계층을 모델의 첫번째 계층으로 쓰고자 할 때에는 키워드 인수 input_shape
(샘플 축을 포함하지 않는 정수 튜플)을 사용하세요.
출력 형태
입력과 동일한 형태입니다만, 차원은 지정한 교환 패턴에 따라서 변경됩니다.