본문 바로가기

인공지능/Deep Learning28

[Deep Learning] TensorFlow optimizer learning rate 셋팅 📝딥러닝 텐서플로우 옵티마이저 런닝레이트 셋팅하기 인공지능 컴파일할때 아래 코드처럼 문자열이 아닌 함수로 불러오면 사용할 옵티마이저의 런닝레이트를 지정이 가능하다 ※ 디폴트 런닝레이트는 0.001 임포트해서 함수를 불러와 셋팅도 가능 (from tensorflow.keras.optimizers import Adam) def build_model() : model = Sequential() model.add( Dense( units= 64, activation= 'relu', input_shape= (9,) ) ) model.add( Dense( units= 64, activation= 'relu') ) model.add( Dense( units=1, activation= 'linear' ) ) # lea.. 2022. 12. 28.
[Deep Learning] epochs history 차트 📝딥러닝 에포크 히스토리를 차트로 보기 # 학습시킬때 변수에 저장하여 학습시킨다 epochs_history = model.fit(X_train, y_train, batch_size= 10, epochs= 100) # 저장된 변수의 히스토리는 딕트로 나온다 epochs_history.history # 차트로 나타내기 (위에서 확인한 history의 키값 입력) plt.plot(np.arange(1, 100+1), epochs_history.history['loss']) plt.xlabel('# epochs') plt.ylabel('Loss') plt.show() 2022. 12. 28.
[Deep Learning] DNN TensorFlow Regression 수치예측 문제 모델링 📝딥러닝 DNN 텐서플로우 리그레션(수치예측) 문제 모델링 ★ 모델링 하기전 데이터 전처리를 먼저 한다 1. 데이터 확인하고 X,y 값 지정 # 기본 데이터 통계치 확인 df.describe() # nan값 확인(있으면 제거) df.isna().sum() # 학습을 위해 X,y값 지정 (X값은 예측에 필요한 컬럼, y는 예측할 값) X = df.loc[ : , '컬럼' : '컬럼' ] y = df['컬럼'] 2. 피처스케일링(데이터 정규화) ※ y값을 정규화 할때 데이터 타입 에러 주의 from sklearn.preprocessing import MinMaxScaler # X값 피처스케일링 scaler_X = MinMaxScaler() X = scaler_X.fit_transform(X.values) #.. 2022. 12. 28.
[Deep Learning] TensorFlow GridSearch 📝딥러닝 텐서플로우 그리드 서치를 이용한 최적의 하이퍼 파라미터 찾기 from keras.wrappers.scikit_learn import KerasClassifier from sklearn.model_selection import GridSearchCV from keras.models import Sequential from keras.layers import Dense 텐서플로우로 그리드 서치 하기 위해서 모델링하는 함수를 만든다 def build_model(optimizer) : model = Sequential() model.add( Dense( units=6, activation= 'relu', input_shape=(11,) ) ) model.add( Dense( units=6, activa.. 2022. 12. 27.
[Deep Learning] Dummy variable trap 📝딥러닝 더미 베리어블 트랩 더미 베리어블 트랩은 간단하게 말하면 굳이 없어도 될 불필요한 컬럼을 없애는 것이다 2022. 12. 27.
[Deep Learning] epoch, batch_size 설정 📝딥러닝 에포크와 배치사이즈 batch_size= n : 한번 학습할때 몇개의 데이터를 넣어 학습할지 값을 입력 ※ 메모리의 한계와 속도 저하 때문에 대부분의 경우에는 한 번의 epoch에서 모든 데이터를 한번에 집어넣을 수 없다 그래서 데이터를 나누어 주는데 이때 몇 번 나누어 주는가를 iteration, 각 iteration마다 주는 데이터 사이즈를 batch size라고함 epochs= n : 해당 데이터를 몇번 반복해서 학습할지 값을 입력 ※ 한 번의 epoch는 신경망에서 전체 데이터 셋에 대해 forward pass/backward pass 과정을 거친 것을 말함 즉, 전체 데이터 셋에 대해 한 번 학습을 완료한 상태 model.fit(X_train, y_train, batch_size= 10.. 2022. 12. 27.
[Deep Learning] ANN TensorFlow 분류의 문제 모델링 📝딥러닝 ANN 텐서플로우 분류의 문제 모델링 import tensorflow as tf from tensorflow import keras from keras.models import Sequential from keras.layers import Dense Sequential()로 비어있는 틀을 만들어 add 함수로 히든 레이어를 추가하고 아웃풋 레이어도 추가한다 ※ 선을 웨이트나 파라미터라고 한다 sigmoid와 tanh는 기울기 소실때문에 히든레이어에 잘 사용하지 않는다 # 레이어를 담을 수 있는 비어있는 틀을 만든다 model = Sequential() # 비어있는 틀에 히든레이어를 추가한다 # 노드 갯수 입력, 액티베이션 함수 입력(일관셋팅), 들어갈 데이터 갯수 입력(열갯수) 2차원으로 입력.. 2022. 12. 27.
[Deep Learning] Optimizer 종류 📝옵티마이저(Optimizer) 종류 Optimizer란 loss function을 통해 구한 차이를 사용해 기울기를 구하고 Network의 parameter(W, b)를 학습에 어떻게 반영할 것인지를 결정하는 방법이다 현재 가장 많이 사용하는 옵티마이저는 Adam이다 2022. 12. 27.