J'essaie d'utiliser un CNN sur certaines données mais j'obtiens une erreur dans ma fonction de perte puisque la sortie de mon modèle est la forme [1000, 1000, 4000] quand elle devrait être [ 1000, 4000]. Le premier 1000 dans ce cas est la taille du lot, et le 4000 est le nombre de classes que j'ai puisque c'est un problème de classification.Tensorflow CNN Forme erreur
Je pense que je devrais utiliser la fonction tf.reshape() à nouveau après ma couche fully_connected pour obtenir la bonne sortie, mais je ne suis pas sûr de savoir comment je peux le faire. J'ai déjà essayé tf.reshape (output [-1, 4000]), mais cela garde toujours l'autre 1000 à l'intérieur.
Voici mon code:
cnn_input = tf.reshape(input, [-1, 1000, 1])
net = slim.conv2d(cnn_input, 128, [3])
net = slim.pool(net, [2], "MAX")
output = slim.fully_connected(net, num_classes, activation_fn=tf.nn.softmax)
return output
Fondamentalement, ma production doit être une forme de rang 2, mais pour une raison, il est démouler d'avoir 3 dimensions. J'ai besoin que la sortie soit de forme [1000, 4000], ce qui est la taille du lot x num_classes.
Toute aide serait grandement appréciée. Merci d'avance! À propos, j'utilise la bibliothèque tf-slim.
EDIT: Est-ce que tf.flatten fonctionnerait avant la couche fully_connected?