小编bsc*_*eck的帖子

在Tensor Flow中访问文件队列中的文件名

我有一个图像目录,以及一个单独的文件匹配图像文件名到标签.所以图像目录中有'train/001.jpg'等文件,标签文件如下:

train/001.jpg 1
train/002.jpg 2
...
Run Code Online (Sandbox Code Playgroud)

通过从文件名创建文件队列,我可以轻松地从Tensor Flow中的图像目录加载图像:

filequeue = tf.train.string_input_producer(filenames)
reader = tf.WholeFileReader()
img = reader.read(filequeue)
Run Code Online (Sandbox Code Playgroud)

但我对如何将这些文件与标签文件中的标签结合起来感到茫然.看来我需要在每一步都访问队列中的文件名.有办法获得它们吗?此外,一旦我有文件名,我需要能够查找由文件名键入的标签.似乎标准的Python字典不起作用,因为这些计算需要在图中的每一步发生.

python tensorflow

11
推荐指数
1
解决办法
5658
查看次数

张量流显式设备要求错误

我正在尝试使用一个gpu上的训练代码和另一个上的eval代码运行CIFAR10教程.我知道我的计算机上有两个gpus,我可以通过运行这里的简单示例来测试它:https://www.tensorflow.org/how_tos/using_gpu/index.html

但是,使用a with device('/gpu:0')对CIFAR示例中的大多数变量都不起作用.我在gpu与cpu上尝试了很多不同变量的组合,或者在一个或另一个上尝试了所有变量.某些变量总是出现相同的错误,如下所示:

Cannot assign a device to node 'shuffle_batch/random_shuffle_queue': Could not satisfy explicit device specification '/gpu:0'
Run Code Online (Sandbox Code Playgroud)

这可能是Tensor Flow中的错误还是我错过了什么?

python tensorflow tensorflow-gpu

9
推荐指数
1
解决办法
3538
查看次数

张量流 shuffle_batch() 在纪元结束时阻塞

我正在使用 tf.train.shuffle_batch() 来创建批量输入图像。它包含一个 min_after_dequeue 参数,用于确保内部队列中有指定数量的元素,如果没有则阻塞其他所有元素。

images, label_batch = tf.train.shuffle_batch(
  [image, label],
  batch_size=FLAGS.batch_size,
  num_threads=num_preprocess_threads,
  capacity=FLAGS.min_queue_size + 3 * FLAGS.batch_size,
  min_after_dequeue=FLAGS.min_queue_size)
Run Code Online (Sandbox Code Playgroud)

在一个时代结束时,当我进行评估时(我确定这在训练中也是如此,但我还没有测试过),一切都会被阻止。我发现在同一时刻,内部 shuffle 批处理队列将剩下少于 min_after_dequeue 元素。此时在程序中,我理想情况下只想将剩余元素出列,但我不确定如何。

显然,当您知道没有更多元素要使用 .close() 方法排队时,可以关闭 TF 队列中的这种类型的阻塞。但是,由于底层队列隐藏在函数内部,我该如何调用该方法?

python tensorflow

3
推荐指数
1
解决办法
4124
查看次数

标签 统计

python ×3

tensorflow ×3

tensorflow-gpu ×1