首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sess.run(张量())什么也不做

Sess.run(张量())什么也不做
EN

Stack Overflow用户
提问于 2016-12-22 04:55:14
回答 1查看 929关注 0票数 1

我试图用存储在TFRecords中的数据填充我的神经网络。数据是使用inputs()提取的,类似于tensorflow网页上的内容。它返回的数据是两个张量。当我尝试()张量以便能够使用feed_dict发送它们时,我的计算机就什么也不做了。代码不返回错误,我的系统监视器使我相信除了我的GPU内存几乎已经满了之外,没有别的事情发生了。

代码语言:javascript
复制
image = tf.placeholder("float32", [None, 30000])

image_batch, label_batch = inputs(train_dir, True, batch_size, hm_epochs, one_hot_labels=True)
print(image_batch)
with tf.Session().as_default() as sess:
    tf.global_variables_initializer().run()
    results = sess.run(image_batch)
print(results)


I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally
Tensor("input/shuffle_batch:0", shape=(100, 30000), dtype=float32)
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GTX 960
major: 5 minor: 2 memoryClockRate (GHz) 1.342
pciBusID 0000:01:00.0
Total memory: 3.94GiB
Free memory: 3.38GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 960, pci bus id: 0000:01:00.0)

**编辑:**我的输入函数。

代码语言:javascript
复制
def inputs(train_dir, train, batch_size, num_epochs, one_hot_labels=False):

if not num_epochs: num_epochs = None
filename = os.path.join(train_dir,
                        TRAIN_FILE if train else VALIDATION_FILE)

with tf.name_scope('input'):
    filename_queue = tf.train.string_input_producer(
        [filename], num_epochs=num_epochs)

    image, label = read_and_decode(filename_queue)

    if one_hot_labels:
        label = tf.one_hot(label, 2, dtype=tf.int32) 

    example_batch, label_batch = tf.train.shuffle_batch(
        [image, label], batch_size=batch_size, num_threads=1,
        capacity=1000,
        # Ensures a minimum amount of shuffling of examples.
        min_after_dequeue=10)

return example_batch, label_batch
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-22 05:24:32

TL;DR:在初始化变量之后,在尝试计算input_batch之前,尝试添加以下行

代码语言:javascript
复制
tf.train.start_queue_runners(sess)

如果不看到inputs()的实现,很难确定,但是张量名称"input/shuffle_batch"表示该函数正在使用tf.train.shuffle_batch()函数构建输入。

许多用于输入处理的TensorFlow函数在内部创建预取队列,包括tf.train.shuffle_batch()。这些预取队列最初是空的,您的sess.run(input_batch)调用可能会被阻塞,等待在这些队列中放置元素。目前,这种情况通常发生的方式是使用“队列运行线程”,它是调用tf.train.start_queue_runners()时启动的一个或多个后台线程的名称。

这是TensorFlow中比较复杂的领域之一,我们正在努力加以改进。同时,您可能会发现关于TensorFlow中的线程和队列的文档很有用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41276012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档