코랩이 Keras 3.0 으로 업데이트 되면서 2.0에서 사용되는 문법들이 안 되는 경우가 있어서 정리 해 보았습니다.
향후 지속적으로 업데이트 될 예정입니다.
모델 input 확인시
2.x
model.input
3.x
model.inputs
=> : 모델의 input 이 사라지고 inputs 로 처리 됨
모델 텐서플로우라이트 변환시
2.x
export_dir = 'saved_model/1'
tf.saved_model.save(model, export_dir)
converter = tf.lite.TFLiteConverter.from_saved_model(export_dir)
3.x
export_dir = 'saved_model/1'
model.export(export_dir, "tf_saved_model")
converter = tf.lite.TFLiteConverter.from_saved_model(export_dir)
mobilenet_v2 전이학습을 할때
2.x
handle_base, pixels, FV_SIZE = ("mobilenet_v2", 224, 1280)
MODULE_HANDLE ="https://tfhub.dev/google/tf2-preview/{}/feature_vector/4".format(handle_base)
IMAGE_SIZE = (pixels, pixels)
feature_extractor = hub.KerasLayer(MODULE_HANDLE,
input_shape=IMAGE_SIZE + (3,),
output_shape=[FV_SIZE],
trainable=False)
model = tf.keras.Sequential([
feature_extractor,
tf.keras.layers.Dense(num_classes, activation='softmax')
])
3.x
handle_base, pixels, FV_SIZE = ("mobilenet_v2", 224, 1280)
MODULE_HANDLE ="https://tfhub.dev/google/tf2-preview/{}/feature_vector/4".format(handle_base)
IMAGE_SIZE = (pixels, pixels)
feature_extractor = hub.KerasLayer(MODULE_HANDLE,
input_shape=IMAGE_SIZE + (3,),
output_shape=[FV_SIZE],
trainable=False)
model = tf.keras.Sequential([
tf.keras.layers.Lambda(lambda x: feature_extractor(x)),
tf.keras.layers.Dense(num_classes, activation='softmax')
])
층을 쌓을 때 KerasLayer를 직접적으로 추가 할 수 없고 feature_extractor을 keras.layers.Lambda를 사용하여 래핑하여 사용함
모델 컴파일시
2.x
model.compile(loss='sparse_categorical_crossentropy', metrics='accuracy')
3.x
model.compile(loss='sparse_categorical_crossentropy', metrics=['accuracy'])
metrics 에 리스트 형태로 전달 해야 됨
모델 저장시
2.x
model.save_weights('dropout_weights.h5')
3.x
model.save_weights('dropout_weights.weights.h5')
save_weights 에서 .weights.h5 와 같이 저장
2.x
checkpoint_cb = keras.callbacks.ModelCheckpoint('best-cnn-model.h5')
3.x
checkpoint_cb = keras.callbacks.ModelCheckpoint('best-cnn-model.keras')
확장자명을 .keras로 변경
케라스 모델 생성시
2.x
from tensorflow import keras
model = keras.Sequential()
model.add(keras.layers.Embedding(500, 16),input_length=100)
model.add(keras.layers.LSTM(8))
model.add(keras.layers.Dense(1, activation='sigmoid'))
3.x
from tensorflow import keras
model = keras.Sequential()
model.add(keras.layers.Input(shape=(100,)))
model.add(keras.layers.Embedding(500, 16))
model.add(keras.layers.LSTM(8))
model.add(keras.layers.Dense(1, activation='sigmoid'))
input_length 대신 input layer를 사용해야 됨
사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기
'강의자료 > 머신러닝' 카테고리의 다른 글
1.1 인공지능이란 (0) | 2024.03.07 |
---|---|
머신러닝 목차 (0) | 2024.02.29 |
머신러닝] 교차검증으로 평가하기 (18) | 2023.12.13 |
[캐글(Kaggle) 따라하기]04. 타이타닉 문제 해결하기 (7) | 2022.11.15 |
[머신러닝 따라하기] 01.데이터 준비 (0) | 2022.09.30 |