2017-05-01 3 views
0

Je suis confronté à cette erreur dans Keras 2. Comment puis-je résoudre ce problème? J'ai importéKeras: ValueError: le mode "concat" ne peut que fusionner des calques avec des formes de sortie correspondantes

from keras.layers import Input, merge 

[...]

up1 = merge([UpSampling2D(size=(2, 2))(conv3), conv2], mode='concat', concat_axis=1) 
    /usr/local/python/3.5.2-gcc4/externalmodules/lib/python3.5/site-packages/keras/legacy/layers.py:456: UserWarning: The `Merge` layer is deprecated and will be removed after 08/2017. Use instead layers from `keras.layers.merge`, e.g. `add`, `concatenate`, etc. 
     name=name) 
Traceback (most recent call last): 
    File "./src/retinaNN_training.py", line 171, in <module> 
    model = get_unet(n_ch, patch_height, patch_width) #the U-net model 
    File "./src/retinaNN_training.py", line 53, in get_unet 
    up1 = merge([UpSampling2D(size=(2, 2))(conv3), conv2], mode='concat', concat_axis=1) 
    File "/usr/local/python/3.5.2-gcc4/externalmodules/lib/python3.5/site-packages/keras/legacy/layers.py", line 456, in merge 
    name=name) 
    File "/usr/local/python/3.5.2-gcc4/externalmodules/lib/python3.5/site-packages/keras/legacy/layers.py", line 107, in __init__ 
    node_indices, tensor_indices) 
    File "/usr/local/python/3.5.2-gcc4/externalmodules/lib/python3.5/site-packages/keras/legacy/layers.py", line 187, in _arguments_validation 
    'Layer shapes: %s' % (input_shapes)) 
ValueError: "concat" mode can only merge layers with matching output shapes except for the concat axis. Layer shapes: [(None, 2, 24, 128), (None, 1, 24, 64)] 

Comment puis-je convertir la fonction de fusion pour être lisible sur Keras 2.x.x.? Merci

+1

le message 'formes de couche: [(None, 2, 24, 128), (None, 1, 24, 64)] 'vous devez ajuster les formes de ce que vous passez à la fusion. C'est simplement impossible de les fusionner. Vous "probablement" devrait avoir les deux se terminant par 128 ou les deux se terminant par 64. –

+0

@Daniel merci pour le message, mais ce n'est pas un problème de forme, c'est l'incompatibilité entre 'Keras 1' et' Keras 2'. Je ne sais pas comment résoudre ça. –

+0

Eh bien, c'est ce que l'erreur dit .... si vous pouviez partager le code pour l'ensemble de votre modèle, nous pourrions essayer de trouver le problème. –

Répondre

0

Il semble que vous utilisez la version Keras ci-dessus 1.0.3. Les versions après 1.0.3 utilisent tensorflow comme backend par défaut Github Issues. Ainsi, vous pouvez faire deux choses:

  1. Installation 1.0.3 version Keras. [OR]

pip install https://github.com/fchollet/keras/tarball/1.0.3

  1. Modifier ~/.keras/keras.json afin qu'il ressemble à

{ "image_dim_ordering": "th", "epsilon": 1e-07, "floatx": "float32", "backend": "tensorflow" }