J'ai formé un réseau de neurones de convolution avec la taille de lot de 10. Toutefois, lorsque les tests, je veux prédire la classification de chaque jeu de données séparément et non en lots, ce qui donne l'erreur:Formation par lots, mais test d'un élément de données individuel dans Tensorflow?
Assign requires shapes of both tensors to match. lhs shape= [1,3] rhs shape= [10,3]
Je comprends 10 fait référence à batch_size
et 3 est le nombre de classes que je classe dans. Ne peut-on pas s'entraîner en utilisant des lots et faire des tests individuellement?
Mise à jour:
Phase de formation:
batch_size=10
classes=3
#vlimit is some constant : same for training and testing phase
X = tf.placeholder(tf.float32, [batch_size,vlimit ], name='X_placeholder')
Y = tf.placeholder(tf.int32, [batch_size, classes], name='Y_placeholder')
w = tf.Variable(tf.random_normal(shape=[vlimit, classes], stddev=0.01), name='weights')
b = tf.Variable(tf.ones([batch_size,classes]), name="bias")
logits = tf.matmul(X, w) + b
entropy = tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=Y, name='loss')
loss = tf.reduce_mean(entropy)
optimizer = tf.train.AdamOptimizer(learning_rate).minimize(loss)
Phase de test:
batch_size=1
classes=3
X = tf.placeholder(tf.float32, [batch_size,vlimit ], name='X_placeholder')
Y = tf.placeholder(tf.int32, [batch_size, classes], name='Y_placeholder')
w = tf.Variable(tf.random_normal(shape=[vlimit, classes], stddev=0.01), name='weights')
b = tf.Variable(tf.ones([batch_size,classes]), name="bias")
logits = tf.matmul(X, w) + b
entropy = tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=Y, name='loss')
loss = tf.reduce_mean(entropy)
optimizer = tf.train.AdamOptimizer(learning_rate).minimize(loss)
Je crois que cela devrait être possible. Pouvez-vous ajouter un exemple de code pour montrer quels espaces réservés (lhs, rhs) ou variables etc. vous avez définis? – dijksterhuis
a mis à jour la question !!! – user5722540
Les deux phases font-elles partie du même graphique Tensorflow? – dijksterhuis