Как исправить объект 'tuple', не имеющий атрибута 'layer'?
Я использую слой из ffectivenet для некоторой постобработки на этом слое, но после извлечения слоя и выполнения операции над ним он показывает, что:
AttributeError: объект 'tuple' не имеет атрибута 'layer' .
Работает на python 3.6.2
с участием tensorflow 2.0
keras 2.2.4
, Пробовал с моделью keras, такой как ResNet, и она работает нормально.
base_model = EfficientNetB4((img_height, img_width, 3), weights='imagenet', include_top=False)
base_model.summary()
x = base_model.get_layer('swish_96').output
x_a = ASPP(x)
ASPP(объединение пространственной пирамиды) - это класс, выполняющий различные операции над слоем x после получения слоя.
1 ответ
Конфликт версий тензорного потока и кераса. Решено, изменив его на тф 1.14.
По-видимому, не все пакеты TensorFlow 2.0 поддерживают Python 3.7.
это сработало для меня
conda create -y --name tensorflow python=3.6
введите это перед входом в среду
conda activate tensorflow
У меня была похожая проблема, когда я строил модель с той же ошибкой. Исправьте это, убедившись, что все слои взяты из tf.keras(возможно, keras тоже в порядке)
То есть:
входные и выходные слои созданы из tf.keras