Dimension négative de la taille causée par la soustraction de 3 à partir de 1 pour 'conv2d_2/convolution'
J'ai eu ce message d'erreur lors de la déclaration de la couche d'entrée dans Keras.
ValueError: dimension Négative de la taille causée par la soustraction de 3 à 1 pour
'conv2d_2/convolution' (op: 'Conv2D') avec la contribution des formes: [?,1,28,28],
[3,3,28,32].
Mon code est comme ça
model.add(Convolution2D(32, 3, 3, activation='relu', input_shape=(1,28,28)))
Exemple d'application: https://github.com/IntellijSys/tensorflow/blob/master/Keras.ipynb
Je pense que vous voulez utiliser un 3x3 noyau. Dans ce cas, vous devez écrire
comment savoir quelle est la différence de l'aide (3,3) ou (4,4) ou (5,5) faire? @ml4294
(3, 3)
au lieu de 3, 3
.comment savoir quelle est la différence de l'aide (3,3) ou (4,4) ou (5,5) faire? @ml4294
OriginalL'auteur Mohammad Nurdin | 2017-08-12
Vous devez vous connecter pour publier un commentaire.
Par défaut, Convolution2D (https://keras.io/layers/convolutional/) s'attend à l'entrée pour être dans le format (échantillons, des lignes, des cols, des canaux), qui est "canaux-dernier". Vos données semble être dans le format (échantillons, canaux, lignes, colonnes). Vous devriez être en mesure de corriger cela en utilisant le mot-clé facultatif
data_format = 'channels_first'
lors de la déclaration de la Convolution2D couche.tq, ça marche!!!!!!
C'est bon à entendre. Vous êtes les bienvenus!
Notez qu'il peut être mis à l'échelle mondiale dans ~/.keras/keras.json: "image_data_format": "channels_first"
OriginalL'auteur ml4294
J'ai eu le même problème et la solution fournie dans ce fil ne m'aide pas.
Après beaucoup de réflexion, j'ai trouvé la solution qui a résolu dans mon cas.
Pour commencer, voici mon code (je sais que c'est pas bon, je suis toujours en apprentissage)
Et qu'après être passé par toutes les possibilités, j'ai trouvé l'erreur:
La taille de l'image est de 32 par 32. Après la première convolutifs couche, nous l'avons réduit à 30 par 30 (je crois , si j'ai bien compris convolution correctement)
Puis la mise en commun de la couche réduit à la moitié, donc 15 par 15..
Et ainsi de suite.. En fin de compte, ma carte du trait est si petit que ma mise en commun de la couche (ou la convolution de la couche) est trop gros pour aller dessus - et les causes de l'erreur
Ainsi, l'erreur a été facilement résolu en faisant la taille de l'image de la taille ou de la réduction de convolution ou la mise en commun des couches.
OriginalL'auteur charel-f
Keras est disponible avec la suite du backend compatibilité:
TensorFlow : Par google,
Théano : Développé par LISA laboratoire,
CNTK : Par Microsoft
Chaque fois que vous voyez une erreur avec [?,X,X,X], [X,Y,Z,X], c'est un canal à corriger cette utilisation du mode automatique de Keras:
Importation
"tf" signifie que la convolution de noyaux ont la forme de lignes (rows, cols, input_depth, profondeur)
Ce le sera toujours ...
OriginalL'auteur Reeves