Je pense qu'il serait extrêmement utile à la Tensorflow de la communauté s'il y a bien la solution de la tâche cruciale de l'essai d'une nouvelle image sur le modèle créé par le convnet dans l'ICRA-10 tutoriel.
J'ai peut-être tort, mais cette étape critique qui rend le modèle appris utilisable dans la pratique semble être en manque. Il y a un "chaînon manquant" dans le tutoriel-un script qui permettrait de charger directement une seule image (sous forme de tableau ou binaire), la comparaison avec le modèle appris, et le retour d'une classification.
Avant donner des réponses à des solutions partielles qui expliquent l'approche globale, mais aucun de qui j'ai été en mesure de mettre en œuvre avec succès. D'autres morceaux peuvent être trouvés ici et là, mais, malheureusement, n'ont pas ajouté à une solution de travail. Veuillez considérer les recherches que j'ai fait, avant de marquage ce des doublons ou déjà répondu.
Tensorflow: comment sauvegarder/restaurer un modèle?
La restauration de TensorFlow modèle
Incapable de restaurer les modèles dans tensorflow v0.8
https://gist.github.com/nikitakit/6ef3b72be67b86cb7868
La réponse la plus populaire est la première, dans laquelle @RyanSepassi et @YaroslavBulatov décrire le problème et une approche: on a besoin de "construire manuellement un graphique avec les mêmes noms de nœud, et l'utilisation de l'Économiseur de charger le poids en elle". Bien que les deux réponses sont utiles, il n'est pas évident comment on allait faire à propos de cela branchant dans l'ICRA-10 du projet.
Entièrement fonctionnelle d'une solution serait hautement souhaitable de sorte que nous pourrions porter sur d'autres de l'image unique, les problèmes de classification. Il y a plusieurs questions DONC, à cet égard, que demander cela, mais toujours pas de réponse complète (par exemple la Charge de point de contrôle et évaluer une seule image avec tensorflow DNN).
J'espère que nous pourrons aboutir à un travail de script que tout le monde pourrait utiliser.
Le script ci-dessous n'est pas encore fonctionnelle, et je serais heureux de vous entendre sur la façon dont cela peut être amélioré pour offrir une solution unique de classification des images à l'aide de l'ICRA-10 TF tutoriel modèle appris.
Assumer toutes les variables, les noms de fichiers etc. sont intacts de la didacticiel d'origine.
Nouveau fichier: cifar10_eval_single.py
import cv2
import tensorflow as tf
FLAGS = tf.app.flags.FLAGS
tf.app.flags.DEFINE_string('eval_dir', './input/eval',
"""Directory where to write event logs.""")
tf.app.flags.DEFINE_string('checkpoint_dir', './input/train',
"""Directory where to read model checkpoints.""")
def get_single_img():
file_path = './input/data/single/test_image.tif'
pixels = cv2.imread(file_path, 0)
return pixels
def eval_single_img():
# below code adapted from @RyanSepassi, however not functional
# among other errors, saver throws an error that there are no
# variables to save
with tf.Graph().as_default():
# Get image.
image = get_single_img()
# Build a Graph.
# TODO
# Create dummy variables.
x = tf.placeholder(tf.float32)
w = tf.Variable(tf.zeros([1, 1], dtype=tf.float32))
b = tf.Variable(tf.ones([1, 1], dtype=tf.float32))
y_hat = tf.add(b, tf.matmul(x, w))
saver = tf.train.Saver()
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
ckpt = tf.train.get_checkpoint_state(FLAGS.checkpoint_dir)
if ckpt and ckpt.model_checkpoint_path:
saver.restore(sess, ckpt.model_checkpoint_path)
print('Checkpoint found')
else:
print('No checkpoint found')
# Run the model to get predictions
predictions = sess.run(y_hat, feed_dict={x: image})
print(predictions)
def main(argv=None):
if tf.gfile.Exists(FLAGS.eval_dir):
tf.gfile.DeleteRecursively(FLAGS.eval_dir)
tf.gfile.MakeDirs(FLAGS.eval_dir)
eval_single_img()
if __name__ == '__main__':
tf.app.run()