[머신러닝] CNN 층에 dropout(드롭아웃) 추가하기 (텐서플로)
Dropout(드롭아웃)은 랜덤으로 선택한 node만 학습시키고, 일부 node는 버리는 것을 말하는데요, 한 번의 학습 후 다음 학습 때 이 과정을 반복합니다. Dropout을 사용하면 은닉층이 많은 neural network에서 오버피팅 문제를 방지할 수 있다는 장점을 가지는데요, 텐서플로를 이용하여 만든 CNN 층에 드롭아웃 층을 추가하는 코드에 대해서 살펴보겠습니다. model = models.Sequential() model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1))) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(64, (3, 3), act..
더보기
[자연어처리] 패딩(Padding) : 다른 숫자로 패딩하는 방법 (파이썬)
이전 글들에서 pad_sequences() 함수를 사용하여 패딩을 구현하고, 길이 지정 등 다양하게 패딩하는 방법에 대해서 계속 살펴보았는데요, 이번 글에서는 0이 아닌 다른 값으로 패딩하는 방법에 대해서 살펴보겠습니다. 먼저, pad_sequences() 함수를 이용하여 길이 10의 제로패딩을 하는 코드를 작성해보겠습니다. import numpy as np from tensorflow.keras.preprocessing.text import Tokenizer sentences = [['place', 'tree'], ['tree', 'nice', 'green'], ['nice', 'sky', 'and', 'tree'], ['bird', 'tree']] #정수 인코딩 tokenizer= Tokenizer(..
더보기