인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

U-Net 구현으로 배우는 딥러닝 논문 구현 with TensorFlow 2.0 - 딥러닝 의료영상 분석

train_isbi_2012.py - 리뷰 및 실행

안녕하세요 train_isbi부분 문의드려요

작성

·

242

·

수정됨

0

2000/2000 [==============================] - ETA: 0s - loss: 0.2448 - accuracy: 0.9157

Epoch 1: loss improved from inf to 0.24480, saving model to saved_model_isbi_2012\unet_model.h5

Traceback (most recent call last):

File "train_isbi_2012.py", line 180, in <module>

app.run(main)

File "D:\anaconda\envs\tfunet\lib\site-packages\absl\app.py", line 308, in run

runmain(main, args)

File "D:\anaconda\envs\tfunet\lib\site-packages\absl\app.py", line 254, in runmain

sys.exit(main(argv))

File "train_isbi_2012.py", line 177, in main

callbacks=[model_checkpoint_callback, tensorboard_callback, custom_callback])

File "D:\anaconda\envs\tfunet\lib\site-packages\keras\utils\traceback_utils.py", line 70, in error_handler

raise e.with_traceback(filtered_tb) from None

File "D:\anaconda\envs\tfunet\lib\site-packages\keras\saving\legacy\save.py", line 155, in save_model

"Saving the model to HDF5 format requires the model to be a "

NotImplementedError: Saving the model to HDF5 format requires the model to be a Functional model or a Sequential model. It does not work for subclassed models, because such models are defined via the body of a Python method, which isn't safely serializable. Consider saving to the Tensorflow SavedModel format (by setting save_format="tf") or using save_weights.

2024-05-05 07:43:59.819913: W tensorflow/core/kernels/data/generator_dataset_op.cc:108] Error occurred when finalizing GeneratorDataset iterator: FAILED_PRECONDITION: Python interpreter state is not initialized. The process may be terminated.

[[{{node PyFunc}}]]

이런문제가 뜨고 사진 5장도 저장안되고 save 폴더 안에도 저장되는게 없는데요 인터넷을 찾아봐도 무슨 문제인지 나오질 않아서 물어봐요 ㅜ(밑에 다른사람이 비슷한사례가 있어 바꿔보았는데 이렇게 뜨네요)

2000/2000 [==============================] - ETA: 0s - loss: 0.2294 - accuracy: 0.9116

Epoch 1: loss improved from inf to 0.22941, saving model to unet_model.h5

Traceback (most recent call last):

File "C:\Users\Administrator\Desktop\UNET-tf2-main\train_isbi_2012.py", line 180, in <module>

app.run(main)

File "D:\anaconda\envs\tfunet\lib\site-packages\absl\app.py", line 308, in run

runmain(main, args)

File "D:\anaconda\envs\tfunet\lib\site-packages\absl\app.py", line 254, in runmain

sys.exit(main(argv))

File "C:\Users\Administrator\Desktop\UNET-tf2-main\train_isbi_2012.py", line 177, in main

callbacks=[model_checkpoint_callback, tensorboard_callback, custom_callback])

File "D:\anaconda\envs\tfunet\lib\site-packages\keras\utils\traceback_utils.py", line 70, in error_handler

raise e.with_traceback(filtered_tb) from None

File "D:\anaconda\envs\tfunet\lib\site-packages\keras\saving\legacy\save.py", line 155, in save_model

"Saving the model to HDF5 format requires the model to be a "

NotImplementedError: Saving the model to HDF5 format requires the model to be a Functional model or a Sequential model. It does not work for subclassed models, because such models are defined via the body of a Python method, which isn't safely serializable. Consider saving to the Tensorflow SavedModel format (by setting save_format="tf") or using save_weights.

2024-05-05 14:39:03.225178: W tensorflow/core/kernels/data/generator_dataset_op.cc:108] Error occurred when finalizing GeneratorDataset iterator: FAILED_PRECONDITION: Python interpreter state is not initialized. The process may be terminated.

[[{{node PyFunc}}]]

Process finished with exit code 1

답변 2

0

AISchool님의 프로필 이미지
AISchool
지식공유자

안녕하세요~. 반갑습니다.


위에 다시 질문 해주신 내용에 대한 답변 참고 부탁드립니다.

좋은 하루되세요.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 도균 우님의 질문에 대해 답변드리겠습니다.

도균 우님께서 겪고 계신 문제는 train_isbi_2012.py를 실행하는 도중 NotImplementedError가 발생하여 모델 저장에 실패하는 상황으로 보입니다. 이 에러 메시지는 주로 모델을 HDF5 포맷으로 저장하려고 할 때, 모델이 Functional 모델이나 Sequential 모델이 아닌 경우에 발생합니다. 문제의 핵심은 TensorFlow에서 제공하는 모델 저장 방식에 있으며, 특히 서브클래스화된 모델에 대해서는 직렬화를 안전하게 수행할 수 없기 때문입니다.

다음은 도균 우님의 문제와 직접적으로 관련된 조언입니다.

  • 모델을 저장할 때 save_format="tf" 옵션을 사용하여 TensorFlow의 SavedModel 포맷으로 저장하시거나, save_weights를 사용해 모델의 가중치만 저장하도록 변경해 보시기 바랍니다.
  • NotImplementedError 메시지에서 제안하는 대로, 모델을 TensorFlow의 SavedModel 포맷으로 저장하려면 모델 정의 부분에서 save_format='tf'를 지정해야 합니다. 이렇게 하면 모델의 구조뿐만 아니라 가중치까지 전체적으로 저장되어, 나중에 쉽게 모델을 재사용하거나 배포할 수 있습니다.
  • 마찬가지로, Python 인터프리터 상태 초기화 문제와 관련하여 FAILED_PRECONDITION: Python interpreter state is not initialized 에러가 발생했을 경우, 이는 TensorFlow의 버전이나 환경 설정과 관련된 문제일 수 있습니다. TensorFlow 버전을 확인하고 필요한 경우 업데이트를 고려해 보시기 바랍니다.

이와 관련하여 링크를 직접 제공드리진 않지만, 도균 우님의 경우 TensorFlow 공식 문서(TensorFlow Save and Load guide)에서 제공하는 저장 및 로딩 방법을 참고하시는 것이 좋습니다. 해당 가이드에는 다양한 모델 저장 방법 및 활용 예시가 포함되어 있어, 문제 해결에 도움이 될 겁니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기