본문 바로가기

분류 전체보기170

[딥러닝] MNIST 손글씨 숫자 실습, 원핫인코딩: to_categorical, categorical_crossentropy MNist 데이터를 가져온다. # 이미 7만장의 손글씨 이미지 데이터가 있다. (X_train, y_train), (X_test, y_test) = mnist.load_data() 첫번째 학습 데이터를 시각화 해보자 in; plt.imshow(X_train[0],cmap='gray') plt.show() out: fromarray을 사용하여 실제 이미지를 볼수있다. in: Image.fromarray(X_train[0]) out: 실습 1. 데이터를 딥러닝으로 처리하기 위해서, 행렬로 만들면서, 가로세로 값을 일렬로 만든다. X_train 형태를 확인한다. in: X_train.shape out: (60000, 28, 28) 학습할수있는 형태로 변환한다. X_train = X_train.reshape(6.. 2022. 6. 14.
[딥러닝] 딥러닝 모델 저장하고 불러오기 모델을 저장하는 방법은 크게 3가지로 분류할수있다. 전체 네트워크와 웨이트를 함께 저장 네트워크만 저장 웨이트만 저장 전체 네트워크와 웨이트를 함께 저장할때는 간단히 save 함수를 사용하면 된다. model.save('fashion_mnist_model') # 이렇게 하면 폴더로 저장된다. # 코랩을 사용하여 구글 드라이브 마운트 후, 경로를 지정하고 저장했다. 파일 확장자를 함께 쓰면 파일로 저장된다. model.save('fashion_mnist_model.h5') # 모델을 저장하는 파일 확장자는 h5를 많이쓴다. load_model 함수를 사용하여 모델을 불러올수있다. loaded_model = tf.keras.models.load_model('fashion_mnist_model.h5') # 기.. 2022. 6. 14.
[딥러닝] 3개 이상의 분류: fashion_mnist, flatten, softmax, sparse_categorical_crossentropy 패션(의류) 이미지를 10개로 분류하는 딥러닝에 대한 데이터셋이 있다. 참고: https://github.com/zalandoresearch/fashion-mnist#labels GitHub - zalandoresearch/fashion-mnist: A MNIST-like fashion product database. Benchmark A MNIST-like fashion product database. Benchmark :point_down: - GitHub - zalandoresearch/fashion-mnist: A MNIST-like fashion product database. Benchmark github.com Fashion MNIST 데이터는 tf.keras datasets API에 들어있.. 2022. 6. 13.
[딥러닝] Overfitting: EarlyStopping, Dropout 설정 에포크 횟수가 적정선을 넘어가면 더 이상 모델이 향상되지 않는다. 하지만 에포크 값은 사용자가 설정해줘야 하는 하이퍼 파라미터이므로 적정한 에포크 값을 찾기란 쉽지않다. 그래서 모델을 학습시킬때 callbacks 파라미터에 EarlyStopping을 적용하여 모델이 더 이상 성능이 향상되지 않을때 학습을 멈추게 할수있다. 먼저 callbacks.EarlyStopping으로 성능이 일정 수준에서 머무르면 자동으로 훈련을 멈추도록 설정한다. early_stop = tf.keras.callbacks.EarlyStopping(monitor='val_loss',patience=10) # monitor 파라미터는 어떤 지표를 보고 멈출지 정한다. (벨리데이션 오차를 사용한다.) # patience 파라미터는 성능이.. 2022. 6. 13.
[딥러닝] Validation 설정: validation_split, validation_data 딥러닝에서 validation은 학습하는 중에 에포크가 한번 끝날때마다 검증하는 것이다. 또한 벨리데이션은 train_test_split으로 train데이터와 test데이터를 나누었던 것처럼 train 데이터를 학습할 데이터와 벨리데이션 데이터로 나누어 사용한다. # 학습이 끝난 후 검증하는 evaluate와 개념을 혼동할수있으므로 주의한다. 벨리데이션 설정은 fit으로 학습할 때 설정해야 한다. 파라미터인 validation_split으로 벨리데이션에 사용할 데이터를 0.2로 설정한다. in: epoch_history = model.fit(X_train,y_train, epochs= 1000, validation_split=0.2) out: Epoch 1/1000 8/8 [================.. 2022. 6. 13.
[딥러닝] 옵티마이저의 learning rate 설정 모델을 학습하기전 컴파일 할때 옵티마이저와 로스를 설정하게되는데 이때 하강할때 내려가는 보폭인 learning rate를 설정해줄수있다. 옵티마이저의 파라미터인 learning_rate를 설정해보자. model.compile(tf.keras.optimizers.RMSprop(learning_rate=0.001), loss= 'mse',metrics= ['mse','mae']) # 컴파일 파라미터로 optimizer 대신 tf.keras.optimizers로 RMSprop를 호출하고 파라미터인 learning_rate를 설정했다. 2022. 6. 13.
[딥러닝] GridSearch, 최적의 하이퍼 파라미터 찾기 ANN을 구성하기전 어떤 하이퍼 파라미터를 사용해야 최적의 ANN이 만들어지는 알수없다. 그렇지만 GridSearchCV를 통해 이를 찾을수 있다. 먼저 GridSearchCV를 임포트 하자 from sklearn.model_selection import GridSearchCV 이제 ANN 모델링을 함수로 만든다. def build_classifier(optimizer) : model = Sequential() model.add(Dense(units = 6, activation = 'relu', input_shape = (11,))) model.add(Dense(units = 8, activation= 'relu')) model.add(Dense(units = 1, activation = 'sigmoid.. 2022. 6. 10.
[딥러닝] 텐서플로우 예측 ANN: loss= 'mse', activation= 'linear' 자동차 구매 가격을 예측하는 ANN을 만들어 보자. 데이터셋 속의 사람들의 각종 정보들을 이용해서 고객이 얼마정도의 차를 구매할 수 있을지 예측한다. 먼저 전처리 작업을 한다. # Nan 처리 df.isna().sum() # X, y구분 X = df.iloc[:,3:-1] y = df['Car Purchase Amount'] # 피처 스케일링 from sklearn.preprocessing import MinMaxScaler scaler_X = MinMaxScaler() X = scaler_X.fit_transform(X) y = y.values.reshape(500,1) # y 형태 2차원으로 변경 scaler_y = MinMaxScaler() y = scaler_y.fit_transform(y) # .. 2022. 6. 10.