4

J'entraîne actuellement un réseau de neurones convolutionnels pour classer entre une pomme pourrie et une pomme normale basée sur l'apparence externe. J'ai toutes les données nécessaires, cependant j'ai une question sur la ligne de code suivante.Dans quel ordre puis-je former mon CNN?

epoch_x, epoch_y = tf.train.batch([resized_image, "Normal"], batch_size=batch_size) 

Ceci alimente le réseau de neurones avec les images et les étiquettes. Ma question est, dois-je former le réseau avec tous les lots d'oranges normales et ensuite former le réseau de neurones avec les oranges pourries? Dois-je alterner l'entraînement des lots d'oranges pourries et normales? Y a-t-il un ordre particulier dans lequel ces images devraient être formées?

+0

Est-ce une [question] similaire (http://stackoverflow.com/questions/8101925/effects-of-randomizing-the-order-of-inputs-to-a-neural-network)? – vendaTrout

Répondre

6

Vous ne devriez pas l'entraîner dans un ordre particulier, chaque lot devrait contenir des exemples positifs et négatifs, dans un ordre aléatoire. Si vos classes sont équilibrées, chaque lot aura approximativement le même nombre d'échantillons positifs/négatifs. La méthode la plus simple consiste à mélanger de manière aléatoire vos données (dans la première dimension), puis à produire des lots de manière séquentielle. Une bonne pratique consiste également à réorganiser vos données après chaque époque, de sorte que le réseau de neurones ne voit aucun motif dans l'ordre dans lequel les échantillons sont présentés.

Ces techniques empêchent tout type de biais dans l'apprentissage du réseau neuronal.

+0

Oh, je ne le savais pas. Chaque lot devrait contenir des exemples positifs et négatifs? Comment le réseau de neurones sait-il quelle image est positive et quelle image est négative? Où dois-je le spécifier? –

+0

@RehaanAhmad Les étiquettes (y) indiquent au NN quelle classe appartient chaque échantillon. –

+0

Attendez, pouvez-vous fournir plus de détails? Comment puis-je définir ces étiquettes dans tensorflow? –