J'ai un problème sur Reshaping Dataframe pour la mise en œuvre CNN.
My DataFrame Forme: Alors j'ai écrit un Code présenté ci-dessous. p> Lorsque j'exécute ce code ci-dessous pour tracer des images par Train.Shape Code> -> (230, 67502). P>
ILOC code>, il jette une erreur p>
X_train = X_train.values.reshape(-1, 260, 260)
print("x_train shape: ",X_train.shape)
ValueError: cannot reshape array of size 15525000 into shape (260,260)
3 Réponses :
Eh bien, Pour le jeter dans ces dimensions, vous auriez besoin de cavalier ou de normaliser les matrices d'image source. Par exemple, vérifiez les keras 260 * 260 code> est
67600 code> et non
67500 code>. Donc, vous ne pouvez pas lancer votre tableau dans ces dimensions. P>
PAD_EURCENCESS CODE>
documentation de fonctionnalité sur le traitement de ce type de problèmes. P>
De quelle manière est-ce que je suive pour obtenir 67500 en mettant en œuvre le processus de remodelage.
La racine carrée de 67500 n'est pas un entier, vous auriez donc besoin de pad / normaliser votre réseau d'une manière ou d'une autre.
Comment puis-je faire le coussinet ou la normaliser? Avant de remodeler, j'ai écrit ce code pour la normalisation (x_train = x_train / 255.0)
Cela ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements d'un auteur, laissez un commentaire sous leur poste. - de l'avis
Êtes-vous absolument sûr de besoin d'une image mais, l'un des plus simples peut être d'ajouter 260 * 260 code>? Comme
67500 == 270 * 250 code>, vous pouvez essayer cela et voir comment il ressemble!
Sinon, vous auriez besoin de
PAD CODE> - Comment dépendra exactement de votre image. P>
100 code> plus
0 '/ code> à la fin pour le faire
67600 code> - donc
260 * 260 code> p>
Voici mon jeu de données de kaggle Kaggle.com/Quangqiyana/human-Gender-Identity. J'essaie (250,270,1) et c'est son spectacle 3 visuels dans l'image. Pour obtenir 67500, quels chiffres devrais-je utiliser pour remodeler?
solution:
260 * 260 ne correspond pas à 67500 67500, vous auriez donc besoin de vous rembourrer avant de pouvoir le remodeler.
@Dan comment puis-je faire le processus de coussin?
@ Ben.t est-il possible de partager des codes en relation avec cela?
@ Ben.t Comment puis-je ajouter plus de valeurs en utilisant np.pad dans le Dataframe?
@Tontybrand Essayez
img = np.pad (img, (0, (67600-img.shape [0])), 'constante'). Remoder ((260, 260)) code>?
@ Ben.t Comment puis-je faire remodeler à nouveau après la normalisation? Est ce bien ? X_train = x_train.values.reshape (-1,260,260,1)
@Tonybrand Je ne comprends pas où votre chose de normalisation entre dans, mais si vous voulez coder l'ensemble de l'ensemble X_TRAIN, essayez
np.pad (x_train, ((0,0), (0, (67600-x_train.shape [ 1])), 'constante') code> et peut-être suivre par un
.reshape (-1, 260, 260) code>, en fonction de la façon dont vous construisez votre CNN
@ Ben.t j'ai édité mon post. Pouvez-vous vérifier si cela ne vous dérange pas?
@ Ben.t puis-je utiliser ce code, je ne peux pas? np.pad (x_train, ((0,0), (0, (67600-x_train.shape [1]))), 'constante'). Remoder (-1, 260, 260)
@Tontybrand Oui, il devrait fonctionner, n'oubliez pas d'attribuer le résultat à X_TRAIN ou à tout autre nom VarAIable que vous souhaitez.