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