인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

공부해서키도컷음조켓다님의 프로필 이미지
공부해서키도컷음조켓다

작성한 질문수

파이썬을 활용한 머신러닝 딥러닝 입문

실습 - Tensorflow Hub 모델을 이용한 전이 학습

섹션7 텐서플로 허브 Trained_MobileNet 모델 생성 오류 해결 방법

작성

·

120

0

"Only instances of keras.Layer can be " 97 f"added to a Sequential model. Received: {layer} " ValueError: Only instances of keras.Layer can be added to a Sequential model. Received: <tensorflow_hub.keras_layer.KerasLayer object at 0x791605217610> (of type <class 'tensorflow_hub.keras_layer.KerasLayer'>)

위와 같은 오류가 나서 한참 찾았는데요. 원인은 tensorflow_hub와 tensorflow 간의 keras 필요 버전 차이에 있다고 합니다. 아래와 같이 keras를 별도 설치하여 임포트하여 사용하시면 정상 작동됩니다. 같은 에러로 고민이신 분에게 도움이 됐으면 좋겠네요.

 

수정 소스 코드

!pip install tf_keras
import tf_keras as tfk

Trained_MobileNet_url = "https://tfhub.dev/google/tf2-preview/mobilenet_v2/classification/2"

Trained_MobileNet = tfk.Sequential([
    hub.KerasLayer(Trained_MobileNet_url, input_shape=(224, 224, 3))
])

Trained_MobileNet.input, Trained_MobileNet.output

답변 1

0

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

좋은 제안 감사드립니다. 저는 그냥 tensorflow 와 tensorflow_hub 를 지난 달 버전으로 다운그레이드 해서 해결했습니다. 이유는 Google의 tensorflow hub tutorial에서도 동일한 에러가 나기 때문에 결론은 구글의 최신 버전 업그레이드와 기존 소스간의 호환성 문제로 볼 수 밖에 없어서 입니다. 구글의 요즘 일하는 방식이 일단 버전 업해 놓고 tutorial을 나중에 고치는 식으로 거칠어진 것 같습니다. 동일한 문제가 최근에 추천 시스템에서도 있었고 Transformer tutorial에서도 있었거든요. 두 경우 모두 에러난지 한달 쯤 후에 저절로 해결되었고 그 동안 저는 이전 버전으로 다운그레이드해서 문제 해결했었습니다. 다음과 같이 수정해서 교재 소스 github 에 업데이트 했습니다. 알려주셔서 감사합니다.

!pip install tensorflow==2.13.0 !pip install tensorflow_hub==0.14.0

공부해서키도컷음조켓다님의 프로필 이미지
공부해서키도컷음조켓다

작성한 질문수

질문하기