본문 바로가기

인공지능50

[Deep Learning] Flatten Library 📝딥러닝 플래튼 라이브러리 이미지의 가로 세로를 전부 일렬로 만들어 인풋레이어 지정 # 함수로 만들때 인풋레이어에 사용해준다 def build_model() : model = Sequential() model.add( Flatten() ) model.add( Dense( units= 128, activation= 'relu') ) model.add( Dense( units= 64, activation= 'relu') ) model.add( Dense( units=10, activation= 'softmax' ) ) model.compile( optimizer= 'adam', loss= 'sparse_categorical_crossentropy', metrics= [ 'accuracy' ]) return .. 2022. 12. 28.
[Deep Learning] TensorFlow EarlyStopping, Callback 📝딥러닝 텐서플로우 EarlyStopping, Callback callback 이란, 내가 만든 함수를 프레임워크가 실행시켜주는 것 EarlyStopping을 사용하면 지정된 에포크 횟수 동안 성능 향상이 없으면 자동으로 훈련이 멈춘다 # patience를 10으로 설정하면 10번의 에포크동안 성능향상이 없으면 멈추라는 뜻 early_stop = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience= 10) # 학습할때 callbacks을 입력 epoch_history = model.fit(X_train, y_train, epochs= 100000, validation_split= 0.2, callbacks= [ early_stop ]) accur.. 2022. 12. 28.
[Deep Learning] 학습중에 평가하기 validation 📝딥러닝 밸리데이션 val = validation 밸리데이션이란, 에포크가 한번 끝날때 마다 학습에 사용하지 않은 데이터로 시험을 보는 것을 말한다 테스트는 인공지능이 완전히 학습이 다 끝난 상태에서 평가하는 것이고 밸리데이션은 학습중에(에포크 끝날때마다) 평가하는 것을 말한다 validation_split : 학습할때 학습 데이터의 n% 는 테스트용으로 쓰겠다고 지정 # 인공지능 함수로 생성 def build_model() : model = Sequential() model.add( Dense( units= 64, activation= 'relu', input_shape= (9,) ) ) model.add( Dense( units= 64, activation= 'relu') ) model.add( De.. 2022. 12. 28.
[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.