Tensorflow 모델을 저장하고로드하면 Keras 오류가 발생합니다.

Aaron Jones

작업중인 프로젝트의 경우 밀도가 높은 피처 레이어와 3 개의 밀도 레이어로 구성된 간단한 모델을 TensorFlow에서 만들었습니다.

def build_model(arguments):
    model = tf.keras.Sequential([
        tf.keras.layers.DenseFeatures(arguments),
        tf.keras.layers.Dense(128, activation='relu'),
        tf.keras.layers.Dense(128, activation='relu'),
        tf.keras.layers.Dense(5, activation='sigmoid')
    ])
    
    return model

매개 변수에 대해 더 자세히 설명 할 수는 arguments없지만 위의 모델 함수는 완벽하게 작동 .h5하며 아래 코드를 사용하여 완벽하게 파일을 훈련하고 저장할 수 있습니다.

# Create a path for the saving location of the model
model_dir = log_dir + "\model.h5"

# Save the model
model.save(model_dir)

그러나 .h5파일 에서 모델을 다시로드하려고하면

model = tf.keras.models.load_model(model_path)

다음과 같은 오류 메시지가 나타납니다.

  File "sampleModel.py", line 342, in <module>
    model = tf.keras.models.load_model(model_path)
  File "C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Python
\Python37\site-packages\tensorflow\python\keras\saving\save.py", line 1
82, in load_model
    return hdf5_format.load_model_from_hdf5(filepath, custom_objects, c
ompile)
  File "C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Python
\Python37\site-packages\tensorflow\python\keras\saving\hdf5_format.py",
 line 178, in load_model_from_hdf5
    custom_objects=custom_objects)
  File "C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Python
\Python37\site-packages\tensorflow\python\keras\saving\model_config.py"
, line 55, in model_from_config
    return deserialize(config, custom_objects=custom_objects)
  File "C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Python
\Python37\site-packages\tensorflow\python\keras\layers\serialization.py
", line 175, in deserialize
    printable_module_name='layer')
  File "C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Python
\Python37\site-packages\tensorflow\python\keras\utils\generic_utils.py"
, line 358, in deserialize_keras_object
    list(custom_objects.items())))
  File "C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Python
\Python37\site-packages\tensorflow\python\keras\engine\sequential.py",
line 487, in from_config
    custom_objects=custom_objects)
  File "C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Python
\Python37\site-packages\tensorflow\python\keras\layers\serialization.py
", line 175, in deserialize
    printable_module_name='layer')
  File "C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Python
\Python37\site-packages\tensorflow\python\keras\utils\generic_utils.py"
, line 358, in deserialize_keras_object
    list(custom_objects.items())))
  File "C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Python
\Python37\site-packages\tensorflow\python\keras\feature_column\base_fea
ture_layer.py", line 141, in from_config
    config['feature_columns'], custom_objects=custom_objects)
  File "C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Python
\Python37\site-packages\tensorflow\python\feature_column\serialization.
py", line 186, in deserialize_feature_columns
    for c in configs
  File "C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Python
\Python37\site-packages\tensorflow\python\feature_column\serialization.
py", line 186, in <listcomp>
    for c in configs
  File "C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Python
\Python37\site-packages\tensorflow\python\feature_column\serialization.
py", line 138, in deserialize_feature_column
    columns_by_name=columns_by_name)
  File "C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Python
\Python37\site-packages\tensorflow\python\feature_column\feature_column
_v2.py", line 2622, in from_config
    config['normalizer_fn'], custom_objects=custom_objects)
  File "C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Python
\Python37\site-packages\tensorflow\python\feature_column\serialization.
py", line 273, in _deserialize_keras_object
    obj = module_objects.get(object_name)
AttributeError: 'NoneType' object has no attribute 'get'

주위를 둘러 보면 함수 custom_objects태그 와 관련이 있다고 생각 load_model하지만 구현 방법을 100 % 확신하지 못합니다.

제가 사용할 수있는 유일한 사용자 지정 개체는 아래에 선언 한 손실과 accuracy제가 사용 하는 메트릭입니다.

loss_object = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)

Aaron Jones

좀 더 둘러보고 Github 문제를 파헤친 후 문제를 해결했다고 생각합니다. 특정 상황에서는 가중치 만 저장하는 것이 아니라 전체 모델을 저장할 필요가 없었습니다. 내 구성을 위해 Tensorflow 2.3.0 및 Keras 2.4.3을 사용하고 있습니다.

짧은 대답:

최소 한 시대에 모델을 맞춘 다음 가중치를로드합니다.

긴 답변 :

가중치를 저장하려면 그 위에 모델 파일 경로가 추가 된 다음 함수를 사용합니다.

# Create a path for the saving location of the model
model_dir = dir_path + '/model.h5'

# Save the model
model.save_weights(model_dir)

먼저 위의 질문에서 모델을 만들고 모델 개체에 저장합니다.

model = build_model(arguments)

손실 함수와 최적화 프로그램을 추가 한 다음 모델을 컴파일하여 가중치를로드하기 전에 모든 관련 기능이 있는지 확인합니다.

loss_object = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
    
#Declare and set the parametors of the optimizer
optimizer = tf.keras.optimizers.Adam(learning_rate=0.001, decay=0.001)
    
#Compile the model
model.compile(loss=loss_object, optimizer=optimizer, metrics=['accuracy'])

나는이 라인에서 내 대답을 발견 여기를 하지만, 맨 아래에 그것은 무게에 적재하기 전에 한 시대의 모델에 맞게 말한다.

history = model.fit(test_data, batch_size=1, epochs=1)

그 후에 아래 함수를 사용하여 가중치를 잘로드 할 수 있습니다.

model.load_weights(model_path)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

pyspark UDF에서 tensorflow.keras 모델을 사용하면 피클 오류가 발생합니다.

분류에서Dev

tensorflow 2.0으로 RNN LSTM 모델을 실행하는 동안 오류가 발생합니다.

분류에서Dev

Tensorflow 2 'InaccessibleTensorError'에서 모델을 하위 분류하는 중에 오류가 발생했습니다.

분류에서Dev

IPU 모델에서 Tensorflow 프로그램을 실행하면 '잘못된 명령어 (코어 덤프)'오류가 발생합니다.

분류에서Dev

ForeignKeys로 모델을 게시하면 무결성 오류가 발생합니다.

분류에서Dev

ForeignKeys로 모델을 게시하면 무결성 오류가 발생합니다.

분류에서Dev

저장된 모델을 TensorFlow 또는 Keras로 변환하거나로드하는 방법은 무엇입니까?

분류에서Dev

pip로 tensorflow를 설치하면 오류가 발생합니다.

분류에서Dev

SD 카드에 파일을 저장하면 오류가 발생합니다.

분류에서Dev

Keras / Sklearn을 Python으로 저장하고 저장된 모델을 tensorflow.js에로드

분류에서Dev

Tensorflow 또는 Keras는 모델 가중치 초기화를 어떻게 처리하며 언제 발생합니까?

분류에서Dev

Tensorflow 2를 사용하여 저장된 모델에서 예측을 시도하는 동안 오류가 발생했습니다.

분류에서Dev

"경고 : tensorflow : 입력 데이터가 부족했습니다"Keras 모델 학습시 오류가 표시됨

분류에서Dev

tensorflow v2.x 백엔드가있는 keras에서 tensorflow v1.x 백엔드로 keras 모델을로드하는 방법은 무엇입니까?

분류에서Dev

Keras는 훈련에 도달하면 최고의 모델을 저장합니다.

분류에서Dev

Intern에서 Leadfoot 모듈을로드하면 오류가 발생합니다.

분류에서Dev

Android에서 자체 TensorFlow 모델을 실행하면 기본 추론 오류가 발생합니다. "Run () 전에 그래프로 세션이 생성되지 않았습니다!"

분류에서Dev

커밋을 github 저장소에 푸시하면 오류가 발생합니다.

분류에서Dev

rpart 모델에 가중치를 적용하면 오류가 발생합니다.

분류에서Dev

Tensorflow Keras에서 모델 최적화 프로그램을 저장하지 않는 방법은 무엇입니까?

분류에서Dev

Keras, Tensorflow : 두 개의 다른 모델 출력을 하나로 병합

분류에서Dev

Tensorflow Keras-LSTM 레이어를 스택하는 동안 오류가 발생했습니다.

분류에서Dev

Laravel : Eloquent 모델을 인스턴스화 할 때 관계를 저장하면 다음 SQL 오류가 발생합니다. "무결성 제약 위반"

분류에서Dev

laravel 5.8에서 모델 바인딩을 사용하려면이 오류가 발생합니다.

분류에서Dev

로컬 모드에서 oozie를 실행하면 오류가 발생합니다.

분류에서Dev

winrt로 알림을 보내려고하면 오류가 발생합니다.

분류에서Dev

피벗 테이블을 csv에 저장하면 "프로세스가 종료 코드 139로 완료되었습니다."라는 오류가 발생합니다.

분류에서Dev

DnDBeyond에서 json 파일을 다운로드하려고하면 403 오류가 발생합니다.

분류에서Dev

WatchKit을 추가하면 링커 오류가 발생합니다.

Related 관련 기사

  1. 1

    pyspark UDF에서 tensorflow.keras 모델을 사용하면 피클 오류가 발생합니다.

  2. 2

    tensorflow 2.0으로 RNN LSTM 모델을 실행하는 동안 오류가 발생합니다.

  3. 3

    Tensorflow 2 'InaccessibleTensorError'에서 모델을 하위 분류하는 중에 오류가 발생했습니다.

  4. 4

    IPU 모델에서 Tensorflow 프로그램을 실행하면 '잘못된 명령어 (코어 덤프)'오류가 발생합니다.

  5. 5

    ForeignKeys로 모델을 게시하면 무결성 오류가 발생합니다.

  6. 6

    ForeignKeys로 모델을 게시하면 무결성 오류가 발생합니다.

  7. 7

    저장된 모델을 TensorFlow 또는 Keras로 변환하거나로드하는 방법은 무엇입니까?

  8. 8

    pip로 tensorflow를 설치하면 오류가 발생합니다.

  9. 9

    SD 카드에 파일을 저장하면 오류가 발생합니다.

  10. 10

    Keras / Sklearn을 Python으로 저장하고 저장된 모델을 tensorflow.js에로드

  11. 11

    Tensorflow 또는 Keras는 모델 가중치 초기화를 어떻게 처리하며 언제 발생합니까?

  12. 12

    Tensorflow 2를 사용하여 저장된 모델에서 예측을 시도하는 동안 오류가 발생했습니다.

  13. 13

    "경고 : tensorflow : 입력 데이터가 부족했습니다"Keras 모델 학습시 오류가 표시됨

  14. 14

    tensorflow v2.x 백엔드가있는 keras에서 tensorflow v1.x 백엔드로 keras 모델을로드하는 방법은 무엇입니까?

  15. 15

    Keras는 훈련에 도달하면 최고의 모델을 저장합니다.

  16. 16

    Intern에서 Leadfoot 모듈을로드하면 오류가 발생합니다.

  17. 17

    Android에서 자체 TensorFlow 모델을 실행하면 기본 추론 오류가 발생합니다. "Run () 전에 그래프로 세션이 생성되지 않았습니다!"

  18. 18

    커밋을 github 저장소에 푸시하면 오류가 발생합니다.

  19. 19

    rpart 모델에 가중치를 적용하면 오류가 발생합니다.

  20. 20

    Tensorflow Keras에서 모델 최적화 프로그램을 저장하지 않는 방법은 무엇입니까?

  21. 21

    Keras, Tensorflow : 두 개의 다른 모델 출력을 하나로 병합

  22. 22

    Tensorflow Keras-LSTM 레이어를 스택하는 동안 오류가 발생했습니다.

  23. 23

    Laravel : Eloquent 모델을 인스턴스화 할 때 관계를 저장하면 다음 SQL 오류가 발생합니다. "무결성 제약 위반"

  24. 24

    laravel 5.8에서 모델 바인딩을 사용하려면이 오류가 발생합니다.

  25. 25

    로컬 모드에서 oozie를 실행하면 오류가 발생합니다.

  26. 26

    winrt로 알림을 보내려고하면 오류가 발생합니다.

  27. 27

    피벗 테이블을 csv에 저장하면 "프로세스가 종료 코드 139로 완료되었습니다."라는 오류가 발생합니다.

  28. 28

    DnDBeyond에서 json 파일을 다운로드하려고하면 403 오류가 발생합니다.

  29. 29

    WatchKit을 추가하면 링커 오류가 발생합니다.

뜨겁다태그

보관