AttributeError: el objeto ‘Nodo’ no tiene el atributo ‘output_masks’

Yo uso Keras pre-entrenado modelo VGG16. El problema es que después de configurar tensorflow para usar la GPU, aparece un error que no tenía antes cuando utilizaba la CPU.

El error es el siguiente:

Traceback (most recent call last): File "/home/guillaume/Documents/Allianz/ConstatOrNotConstatv3/train_network.py", line 109, in  model = LeNet.build(width=100, height=100, depth=3, classes=5) File "/home/guillaume/Documents/Allianz/ConstatOrNotConstatv3/lenet.py", line 39, in build output = model(pretrainedOutput) File "/usr/local/lib/python3.6/dist-packages/keras/engine/base_layer.py", line 443, in __call__ previous_mask = _collect_previous_mask(inputs) File "/usr/local/lib/python3.6/dist-packages/keras/engine/base_layer.py", line 1311, in _collect_previous_mask mask = node.output_masks[tensor_index] AttributeError: 'Node' object has no attribute 'output_masks' 

Lo consigo después de ejecutar este código:

  pretrained_model = VGG16( include_top=False, input_shape=(height, width, depth), weights='imagenet' ) for layer in pretrained_model.layers: layer.trainable = False model = Sequential() # first (and only) set of FC => RELU layers model.add(Flatten()) model.add(Dense(200, activation='relu')) model.add(Dropout(0.5)) model.add(BatchNormalization()) model.add(Dense(400, activation='relu')) model.add(Dropout(0.5)) model.add(BatchNormalization()) # softmax classifier model.add(Dense(classes,activation='softmax')) pretrainedInput = pretrained_model.input pretrainedOutput = pretrained_model.output output = model(pretrainedOutput) model = Model(pretrainedInput, output) 

EDIT1: Tengo keras (2.2.2) y tensorflow (1.10.0rc1). También he probado en keras 2.2.0 y el mismo error. El problema es que el entorno de Python que uso funciona en otros NN sin entrenamiento.

EDIT2: Soy capaz de conectar dos modelos caseros. Solo con los pre-entrenados existe un problema y no solo con VGG16.

Es probable que importe tf.keras.layers o tf.keras.applications u otros módulos keras desde tensorflow.keras, y mezcle estos objetos con objetos del paquete keras “puro”, que no es compatible, según la versión, etc. Recomiendo ver si puede importar y ejecutar todo desde los módulos keras “puros”; no utilice tf.keras durante la depuración, ya que no son necesariamente compatibles. Tuve el mismo problema, y ​​esta solución está funcionando para mí.

Tuve el mismo error al importar keras y tenerflow.keras simultáneamente: from tensorflow.keras.optimizers import Adam from keras.utils import multi_gpu_model

from tensorflow.keras.optimizers import Adam from tensorflow.keras.utils import multi_gpu_model este problema después de cambiar el código a: from tensorflow.keras.optimizers import Adam from tensorflow.keras.utils import multi_gpu_model