J'essaie d'utiliser la pondération d'échantillon avec ImageGenerator
dans une tâche de segmentation par pixel.Comment utiliser les poids d'échantillonnage avec augmentation de données dans Keras?
- images et des masques sont des tableaux numpy (634, 1, 64, 64)
- masques ont 5 classes (codée comme 0 à 4)
sample_weight
est un réseau (634, 64, 64)- augmentation de données en utilisant
.flow
pour deux générateurs avec modèle identiqueseed=42
etbatch_size=32
- étant compilé avec
sample_weight_mode='temporal'
3 dernières couches i n le modèle Unet sont:
conv2d_19 (Conv2D) (None, 5, 64, 64) 325 dropout_18[0][0] conv2d_20 (Conv2D) (None, 1, 64, 64) 6 conv2d_19[0][0] activation_1 (Activation) (None, 1, 64, 64) 0 conv2d_20[0][0]
Cela jette une erreur:
ValueError: Found a sample_weight array with shape (634, 64, 64). In order to use timestep-wise sample weighting, you should pass a 2D sample_weight array.
Si je Reshape sample_weight
à (634, 4096) je reçois:
ValueError: Found a sample_weight array with shape (634, 4096) for an input with shape (32, 1, 64, 64). sample_weight cannot be broadcast.
Est-ce mon malentendu sur la façon d'utiliser ImageGenerator
ou est-il incapable de gérer cette situation particulière?
Si je n'utilise pas de poids d'échantillonnage, le modèle s'exécute et aucune erreur n'est générée.
Keras 2.0.4, Theano 0,9