본문 바로가기

A.I14

딥러닝/ 에포크 시마다 기록(log)을 남길 수 있는 CSVLogger 에포크 시마다 기록(log)을 남길 수 있는 CSVLogger # 파일썬으로 디렉토리 만드는 코드 작성 if not os.path.exists(PROJECT_PATH + '/log/' + model_type + '/') : os.makedirs(PROJECT_PATH + '/log/' + model_type + '/') from tensorflow.keras.callbacks import CSVLogger # 미리 경로를 변수에 저장해둠 LOGFILE_PATH >> ./log/mobilenetv2/mobilenetv2-by-type-training-logblock-1-1.csv csv_logger = CSVLogger(LOGFILE_PATH, append=True) 힐링아무의 코딩일기!! 2022. 6. 16.
딥러닝/ 에포크 시마다 가장 좋은 모델을 저장하는 ModelCheckpoint 에포크 시마다 가장 좋은 모델을 저장하는 ModelCheckpoint # 파일썬으로 디렉토리 만드는 코드 작성 if not os.path.exists(PROJECT_PATH + '/checkpoints/' + model_type + '/') : os.makedirs(PROJECT_PATH + '/checkpoints/' + model_type + '/') from tensorflow.keras.callbacks import ModelCheckpoint # 경로를 미리 변수로 만듬 CHECKPOINT_PATH >> ./checkpoints/mobilenetv2/by-type-mobilenetv2-block-1-1.h5 cp = ModelCheckpoint(CHECKPOINT_PATH, monitor='va.. 2022. 6. 16.
딥러닝/ Fine Tuning(파인 튜닝) 을 하기 위한 코드와 설명 Fine Tuning(파인 튜닝) 을 하기 위한 코드와 설명 파인튜닝(Fine Tuning)이란? Transfer Learning을 이용해 학습한 상태에서 베이스 모델의 파라미터를 미세하게 조정하는 것으로~ Frozen Layer 범위에 변화를 주거나 컴파일에 변화를 주어 추가로 학습을 시키는 것을 말합니다. 1. base_model을 학습 가능토록 만든다. base_model.trainable = True model.summary() summary()로 확인하기 2. 몇번째 레이어까지 학습 불가능하게 할지 정한다. base_model.layers len(base_model.layers) 길이를 구해봅니다. end_layer = 130 for layer in base_model.layers[ : end_.. 2022. 6. 16.
딥러닝/ Transer Learning을 하기 위한 코드와 설명 Transer Learning을 하기 위한 코드와 설명 기존의 잘 만들어진 모델을 활용하는 방법 CNN 모델을 두 부분으로 나눕니다. Base Model 과 Head Model 여기서 Head Model을 제거하고 가져옵니다. base_model = MobileNetV2(input_shape=(224,224,3), include_top=False) 가져온 Base Model은 학습이 안되게 막아줍니다. base_model.trainable = False base_model.summary() 확인해 줍니다. head_model = base_model.output head_model = AveragePooling2D(4,4)(head_model) head_model = Flatten()(head_model).. 2022. 6. 16.
딥러닝/ EarlyStopping 라이브러리 사용법 EarlyStopping 라이브러리 사용법 에포크를 계속 실행하는 동안 성능이 더이상 좋아지지 않으면 멈춰라. patience=10 에포크를 10번 하는동안 성능향상이 안되면 멈춰라. early_stop = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=10) Callbaks(콜백)이란?? 프레임워크가 실행하는 코드, 코드 실행을 프레임워크에 맡기는 것. epoch_history = model.fit(X_train, y_train, epochs=100000, validation_split=0.2, callbacks=[early_stop]) 힐링아무의 코딩일기 힐코딩!! 2022. 6. 13.
Phthon(파이썬) 딥러닝 밸리데이션 데이터란 무엇이고, 코드에서 사용하는 방법 밸리데이션 데이터란 무엇이고, 코드에서 사용하는 방법 밸리데이이션은 에포크가 한번 끝날때마다~ 원래는~ 모델 학습이 다 끝나고 나면 해줘야 하는 것인데!! 이것을 아예 중간에 평가하고 싶다. validation_split=0.2 시험볼 데이터가 있어야 하는데 그걸 X_train, y_train으로 한다. a. 파라미터 validation_split epoch_history = model.fit(X_train, y_train, epochs=1000, validation_split=0.2) 힐링아무의 코딩일기 힐코딩!! 2022. 6. 13.
Python(파이썬) 딥러닝 learning rate를 옵티마이저에서 셋팅하는 코드 learning rate를 옵티마이저에서 셋팅하는 코드 model.compile(tf.keras.optimizers.RMSprop(learning_rate=0.001), loss='mse', metrics=['mse', 'mae']) return model model = build_model() 힐링아무의 코딩일기 힐코딩!! 2022. 6. 13.
Pandas(판다스) 데이터프레임(Dataframe)의 pivot_table 함수 사용법 판다스 데이터프레임의 pivot_table 함수 사용법 pivot_table(피벗 테이블)이란? 피벗 테이블은 많은 양의 데이터에서 필요한 자료만을 뽑아 새롭게 표를 작성해 주는 기능입니다. 지정된 두 열을 각각 행 인덱스와 열 인덱스로 바꾼 후 행 인덱스의 라벨 값이 첫번째 키의 값과 같고, 열 인덱스의 라벨 값이 두번째 키의 값과 같은 데이터를 찾아서 해당 칸에 넣습니다. 주어진 데이터가 존재하지 않으면 해당칸에 NaN 값을 넣습니다. pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All', obser.. 2022. 5. 12.
데이터프레임의 날짜문자열 칼럼을 datetime64로 변경하는법 데이터프레임의 날짜문자열 칼럼을 datetime64로 변경하는법 아래처럼 코드를 작성합니다. chicago_df['Date'] = pd.to_datetime(chicago_df['Date'], format='%m/%d/%Y %I:%M:%S %p') chicago_df['Date'].value_counts() datetime64로 변경된것을 바로 볼수 있습니다. 힐링아무의 코딩일기 힐코딩! 2022. 5. 11.
판다스(Pandas) read_csv 함수의 error_bad_lines=False 파라미터 사용법 read_csv 함수의 error_bad_lines=False 파라미터 사용법 *.CSV 파일을 불러올때 데이터 안에 이상한 행들이 있을때 에러가 날수 있습니다. 이럴때는 파일을 불러올때, 파라미터 error_bad_lines=False 를 사용해 줍니다. (이상한 행들은 그냥 넘어가고~ 괜찮은 행들만 가져온다!) 1 chicago_df_1 = pd.read_csv('Chicago_Crimes_2005_to_2007.csv', error_bad_lines=False) cs 힐링아무의 코딩일기 힐코딩!! 2022. 5. 11.