목록Python/Deep Learning (31)
군침이 싹 도는 코딩
이미지를 인공지능 학습 시킬때 인풋쉐입으로 사용하기 위해서는 Flatten 이라는 라이브러리를 사용한다 사용법과 정의는 이 글 참고 : https://mugoori.tistory.com/132 Flatten 라이브러리 사용 이유 def build_model(): model = Sequential() model.add( Flatten()) model.add( Dense(128,'relu') ) model.add( Dense(64,'relu') ) model.add( Dense(10, 'softmax')) model.compile('adam','sparse_categorical_crossentropy',['accuracy']) return model # 위 코드는 mugoori.tistory.com X_tr..

# 인공지능 학습에서 에포크를 반복 할 수록 학습 데이터의 결과가 좋아진다 반대로 벨리데이션 데이터는 점점 로스가 커지는것을 볼 수 있다 학습한 데이터(Train Loss) 와 벨리데이션 데이터(Validation Loss) 가 멀어지는 현상을 overfitting 이라고 한다 # 위와 마찬가지로 정확도(accuracy) 또한 학습한 데이터와 벨리데이션 데이터간의 격차가 커진다 이를 해결하기 위해서는 callback class를 이용해 원하는 조건을 걸어서 멈추게하면 된다 class myCallback(tf.keras.callbacks.Callback): def on_epoch_end(self, epoch, logs=()) : if logs['val_accuracy'] > 0.88 : print('\n내..
y_test >>> array([9, 2, 1, ..., 8, 1, 5], dtype=uint8) y_pred >>> array([[2.20964534e-06, 1.08094355e-05, 9.79511606e-06, ..., 1.81616340e-02, 9.49416881e-06, 9.58712578e-01], [3.86873609e-04, 3.95946366e-11, 9.89674151e-01, ..., 2.52638402e-14, 2.08223998e-08, 1.40853149e-13], [4.37165903e-09, 9.99999940e-01, 7.74465492e-11, ..., 1.44372901e-15, 2.84200545e-11, 4.31300395e-13], ..., [3.20444873..

# 인공지능을 통해 6만장의 옷 이미지 데이터를 10가지의 아웃풋으로 분류해야 하는데 아웃풋 노드가 3개 이상일 경우 사용하는 엑티베이션 함수가 바로 소프트 맥스이다. def build_model(): model = Sequential() model.add( Flatten()) model.add( Dense(128,'relu') ) model.add( Dense(64,'relu') ) model.add( Dense(10, 'softmax')) model.compile('adam','sparse_categorical_crossentropy',['accuracy']) return model # 소프트 맥스의 사용법은 다음과 같다 마지막 아웃풋 레이어를 설정할때 댄스에 출력으로 나와야할 갯수만큼의 유닛을 써주..
def build_model(): model = Sequential() model.add( Flatten()) model.add( Dense(128,'relu') ) model.add( Dense(64,'relu') ) model.add( Dense(10, 'softmax')) model.compile('adam','sparse_categorical_crossentropy',['accuracy']) return model # 위 코드는 이미지를 받아서 처리하는 인공지능을 모델링 한 것이다 이 인공지능에서 Flatten 라이브러리를 사용하는 이유는 다음과 같다 이미지의 데이터는 0~255까지의 숫자로 되어있다 X_train.shape >>> (60000, 28, 28) # 해당 모델링에 들어갈 트레인 데이..

# 위 그래프를 보면 X 축의 에포크가 계속 반복되어도 어느지점에 도달하면 더이상 성능 향상이 이루어지지 않는것을 확인할 수 있다. 이 지점을 찾아 자동으로 멈춰주는 기능이 얼리스탑핑 라이브러리이다. early_stop = tf.keras.callbacks.EarlyStopping(monitor='val_loss',patience=10) # 사용 코드는 다음과 같다 텐서플로우/케라스/콜백/얼리스탑핑 파라미터는 모니터는 벨리데이션 로스로 페이션스는 설정값을 주면 그 값만큼의 에포크를 반복하는동안 성능 향상이 없으면 멈춘다는 파라미터이다. 이렇게 얼리스탑이라는 변수를 만들어준다 epoch_history = model.fit(X_train,y_train,epochs=100000,validation_split=..
model.fit(X_train, y_train, epochs = 200, validation_split= 0.2 ) >>> Epoch 1/200 8/8 [==============================] - 1s 49ms/step - loss: 604.2968 - mse: 604.2968 - mae: 23.2967 - val_loss: 551.5095 - val_mse: 551.5095 - val_mae: 22.0260 Epoch 2/200 8/8 [==============================] - 0s 9ms/step - loss: 584.9658 - mse: 584.9658 - mae: 22.8479 - val_loss: 530.0828 - val_mse: 530.0828 - va..
def build_model(): model = Sequential() model.add( Dense(64 , 'relu', input_shape= (9,) ) ) model.add( Dense(64, 'relu') ) model.add( Dense(1, 'linear')) model.compile(optimizer= tf.keras.optimizers.Adam(learning_rate=0.001), loss= 'mse', metrics=['mse', 'mae']) return model # 모델링을 함수로 만들때에 러닝 레이트를 지정해줄수 있다 러닝 레이트란 그레디언트 디센트하는 보폭을 의미한다 이것을 조절해줄수 있는 코드는 컴파일 할때 옵티마이저 파라미터에 넣는것이다 해당 코드의 6번째줄에 위치해 있..