한국화학연구원 강영묵 교수님이 오셔서 강의를 진행해주셨습니다. 기초 수업이라 그런지 전반적으로 먼저 배운 인공지능 수업과 겹치는 예가 있었습니다. 한국화학연구원 강영묵 교수님이 오셔서 강의를 진행해주셨습니다. 기초 수업이라 그런지 전반적으로 먼저 배운 인공지능 수업과 겹치는 예가 있었습니다.
예) 강아지 분류 전이 학습 6부) 고급 아키텍처/수료 프로그램 자연어 처리(단어에서 -> 숫자로) RNN(Recurrent Neural Network) 기타 아키텍처(Auto Encoder/GAN, Generate Adversarial Networks) 예) 강아지 분류 전이 학습 6부) 고급 아키텍처/수료 프로그램 자연어 처리(단어에서 -> 숫자로) RNN(Recurrent Neural Network) 기타 아키텍처(Auto Encoder/GAN, Generate Adversarial Networks)
<< 프로그램을 수료하기 위한 예 >> 신선한 과일과 썩은 과일을 인식할 수 있는 새로운 모델을 트레이닝 ImageNet 기본 모델 로드 << 프로그램을 수료하기 위한 예 >> 신선한 과일과 썩은 과일을 인식할 수 있는 새로운 모델을 트레이닝 ImageNet 기본 모델 로드
텐서플로우 가져오기 kerasbase_model = keras.applications から取得します。VGG16(weights= ‘imag net’, input_shape=(224, 224, 3) include_top=false) 텐서플로우 가져오기 kerasbase_model = keras.applications から取得します。VG16(weights= ‘imag net’, input_shape=(224, 224, 3), include_top=false)
기본 모델 동결입니다 기본 모델 동결입니다
# Freeze base model base_model.trainable= False [출처] [26일차] ABC 부트캠프 엔비디아 딥러닝 | 작성자 유정 # Freeze base model base_model.trainable= False [출처] [26일차] ABC 부트캠프 엔비디아 딥러닝 | 작성자 유정
모델에 레이어 추가 – 레이어를 사전 교육된 모델에 추가 모델에 레이어 추가 – 레이어를 사전 교육된 모델에 추가
# 올바른 모양 입력 = keras로 입력을 작성합니다. 입력 (shape=(224,224,3))x = base_model(inputs, training=false) # 풀링레이어를 추가하거나, 레이어 x = keras.layers를 플랫하게 합니다. GlobalAveragePooling2D()(x)#최종 고밀도 레이어 출력 = keras.layers를 추가합니다. Dense (6, 액티베이션 = ‘softmax’)(x)# 입력과 출력을 조합하여 모델 모델 = keras를 작성합니다. 모델(입력,출력) # 올바른 모양 입력 = keras로 입력을 작성합니다. 입력 (shape=(224,224,3))x = base_model(inputs, training=false) # 풀링레이어를 추가하거나, 레이어 x = keras.layers를 플랫하게 합니다. GlobalAveragePooling2D()(x)#최종 고밀도 레이어 출력 = keras.layers를 추가합니다. Dense (6, 액티베이션 = ‘softmax’)(x)# 입력과 출력을 조합하여 모델 모델 = keras를 작성합니다. 모델(입력,출력)
다양한 종류의 과일을 분류합니다 다양한 종류의 과일을 분류합니다
model.summary() model.summary()
모델 컴파일 – 손실과 지표 옵션으로 모델을 컴파일합니다 모델 컴파일 – 손실과 지표 옵션으로 모델을 컴파일합니다
model.compile (loss = hard.losses 型精度, メ categical crossentropy (), メ codel.compile (loss = hard.losses 。カテゴ, 。カテゴ codel.coscal crossentropy (), 型精度 (hard.metrics ()
데이터 확장 데이터 확장
Tensorflow 부터 입니다. keras.prepprocessing.image import ImageDataGenerator datagen = ImageDataGenerator (rotation_range=180, # ランダムに画像を回転させます (degrees). zoom_range=0.1, #랜덤으로 줌하면 이미지의 폭이 수평이 됩니다 (전폭의 fraction) height_shift_range=0.1, # 이미지를 수직방향으로 랜덤하게 이동합니다 (전고 fraction) horizontal_flip=True, #이미지를 수평방향으로 랜덤하게 반전시킵니다 (세로방향으로 랜덤하게 반전되지 않습니다) Tensorflow 부터 입니다. keras.prepprocessing.image import ImageDataGenerator datagen = ImageDataGenerator (rotation_range=180, # ランダムに画像を回転させます (degrees). zoom_range=0.1, #랜덤으로 줌하면 이미지의 폭이 수평이 됩니다 (전폭의 fraction) height_shift_range=0.1, # 이미지를 수직방향으로 랜덤하게 이동합니다 (전고 fraction) horizontal_flip=True, #이미지를 수평방향으로 랜덤하게 반전시킵니다 (세로방향으로 랜덤하게 반전되지 않습니다)
데이터 세트 로드 – 교육 및 검증 데이터 세트를 로드합니다 데이터 세트 로드 – 교육 및 검증 데이터 세트를 로드합니다
# トレーニングデータセットtrain_it = datagenをロードして繰り返します。flow_from_directory (‘ data/fruits/train/’, target_size=(224, 224), color_mode=’rgb’, class_mode=”categorical”)# 検証データセット valid_it = datagen をロードして反復します。flow_from_directory (‘data/fruits/’, target_size=(224, 224), color_mode=’rgb’, class_mode=”categorical”) です # トレーニングデータセットtrain_it = datagenをロードして繰り返します。flow_from_directory (‘ data/fruits/train/’, target_size=(224, 224), color_mode=’rgb’, class_mode=”categorical”)# 検証データセット valid_it = datagen をロードして反復します。flow_from_directory (‘data/fruits/’, target_size=(224, 224), color_mode=’rgb’, class_mode=”categorical”) です
모델트레이닝(epochs=2010이상 되어야 정확도가 90%이상 나옵니다) 모델트레이닝(epochs=2010이상 되어야 정확도가 90%이상 나옵니다)
model.fit(train_it, validation_data=valid_it, steps_per_epoch=train_it.batch_size, validation_steps=valid_it.samples_size, epochs=20) model.fit(train_it, validation_data=valid_it, steps_per_epoch=train_it.batch_size, validation_steps=valid_it.samples_size, epochs=20)
파인 튜닝을 위해 모델 동결 해제 이미 92%의 검증 정확도에 도달한 경우, 이 다음 단계는 선택지에 도달하지 못한 경우에는 매우 낮은 학습률로 모델을 파인 튜닝하는 것이 좋습니다 파인 튜닝을 위해 모델 동결 해제 이미 92%의 검증 정확도에 도달한 경우, 이 다음 단계는 선택지에 도달하지 못한 경우에는 매우 낮은 학습률로 모델을 파인 튜닝하는 것이 좋습니다
# ベースモデルbase_model.trainable = True# 低学習率モデルでモデルをコンパイルします。compile(optimizer=keras.optimizers)。RMSprop(learning_rate = 0.00001)、loss = keras.losses です。CategicalCrossentropy(), メトリック = [keras.metrics] です。CategicalAccuracy()])model.fit(train_it, validation_data=valid_it, steps_per_epoch=train_it.samples/train_it.batch_size, validation_steps=valid__it.samples/valid__size, epoches=10) # ベースモデルbase_model.trainable = True# 低学習率モデルでモデルをコンパイルします。compile(optimizer=keras.optimizers)。RMSprop(learning_rate = 0.00001)、loss = keras.losses です。CategicalCrossentropy(), メトリック = [keras.metrics] です。CategicalAccuracy()])model.fit(train_it, validation_data=valid_it, steps_per_epoch=train_it.samples/train_it.batch_size, validation_steps=valid__it.samples/valid__size, epoches=10)
모델평가 모델평가
model.evaluate(valid_it, 스텝 =valid_it.samples/valid_it.batch_size) model.evaluate(valid_it, 스텝 =valid_it.samples_it.batch_size)
평가를 실행합니다 평가를 실행합니다
from run_assess 수입 런_assess 멘트런_assess (모델, 유효_it) from run_assess 수입 런_assess 멘트런_assess (모델, 유효_it)
학습 결과 학습 정확도가 92% 이상 되어야 수료증 발급이 가능합니다. 96%로 무사히 수료! 학습 결과 학습 정확도가 92% 이상 되어야 수료증 발급이 가능합니다. 96%로 무사히 수료!
#ABC 부트캠프 #유클리드 소프트 #고용노동부 #대한상공회의소 #미래내일일경험사업 #ABC 부트캠프 #유클리드 소프트 #고용노동부 #대한상공회의소 #미래내일일경험사업