tensorflow string_input_producer给出空队列

时间:2017-05-27 20:47:17

标签: python tensorflow computer-vision deep-learning image-recognition

我试图从文件名列表中建立一个tensorflow队列。列表已经完成,但似乎字符串输入生成器返回了一个空队列。可能还有其他原因导致代码无法正常工作。以下是代码:

sess = tf.InteractiveSession()

def read_my_file_format(filename_queue):
    reader = tf.WholeFileReader()
    key, value = reader.read(filename_queue)
    images = tf.image.decode_jpeg(value, channels=3)
    return images, key

def input_pipeline(filenames, batch_size, num_epochs, labels):
    filename_queue = tf.train.string_input_producer(filenames, num_epochs=num_epochs, shuffle=False)
    image, key = read_my_file_format(filename_queue)
    return image, key

sess.run(tf.global_variables_initializer())

coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess = sess, coord = coord, start=True)

input_pipeline(trainnames, batch_size, None, labels)

coord.request_stop()
coord.join(threads)

1 个答案:

答案 0 :(得分:0)

如果您可以提供错误消息,则会有所帮助。

同时,以下是对您的代码的一些评论:

  • 方法global name 'get_disciplines' is not defined定义与您的队列关联的TensorFlow运算符,并将它们添加到图表中,以便在调用# model.py class Discipline(models.Model): id = models.CharField(max_length=15, primary_key=True) name = models.CharField(max_length=100) class Subject(models.Model): id = models.CharField(max_length=15, primary_key=True) name = models.CharField(max_length=100) disciplines = models.ManyToManyField(Discipline) class Excerpt(models.Model): discipline = models.ManyToManyField(Discipline) subjects = models.ManyToManyField(Subject) # my idea def get_disciplines(self): e = self.discipline.first() return e.id # admin.py class ExcerptTaggerAdmin(ImageCroppingMixin, admin.ModelAdmin): filter_horizontal = ('subjects','discipline') def formfield_for_manytomany(self, db_field, request, **kwargs): if db_field.name == "subjects": kwargs["queryset"] = Subject.objects.filter(disciplines = get_discipline) return super(ExcerptTaggerAdmin, self).formfield_for_manytomany(db_field, request, **kwargs) class ExcerptTagger(Excerpt): class Meta: proxy = True 之前调用它,如果您希望队列成为图形的一部分并且在如果您希望协调员启动您的队列,请致电input_pipeline
  • 您尚未要求TensorFlow实际运行您的sess.run(tf.global_variables_initializer())运营商。

以下是我要尝试的代码:

start_queue_runners