TF-slim : FIFOQueue已关闭,且元素数量不足(请求1,当前大小为0)。

问题描述 投票:0回答:1

我试图使用slim来制作我自己的数据集并读入它,当我试图读入它时,我得到以下错误。

raise type(e)(node_def, op, message) tensorflow.python.framework.errors_impl.OutOfRangeError: FIFOQueue'_2_parallel_readcommon_queue'已关闭,且元素不足(请求1,当前大小为0)[[节点:parallel_readcommon_queue_Dequeue = QueueDequeueV2component_types=[DT_STRING, DT_STRING], timeout_ms=-1, _device="job:localhostreplica:0task:0cpu:0"]] 。 [[节点:caseIf_2DecodePng_117 = _Recvclient_terminated=false, recv_device="job:localhostreplica:0task:0gpu:0", send_device="job:localhostreplica: 0task:0cpu:0", send_device_incarnation=1, tensor_name="edge_12_caseIf_2DecodePng", tensor_type=DT_UINT8, _device="job:localhostreplica:0task:0gpu:0"]] 。

由 op u'parallel_readcommon_queue_Dequeue'引起,定义在。

OutOfRangeError (回溯见上文): FIFOQueue'_2_parallel_readcommon_queue'已关闭,且元素不足(请求1,当前大小为0)[[节点:parallel_readcommon_queue_Dequeue = QueueDequeueV2component_types=[DT_STRING, DT_STRING], timeout_ms=-1, _device="job:localhostreplica:0task:0cpu:0"]] 。 [[节点:caseIf_2DecodePng_117 = _Recvclient_terminated=false, recv_device="job:localhostreplica:0task:0gpu:0", send_device="job:localhostreplica: 0task:0cpu:0", send_device_incarnation=1, tensor_name="edge_12_caseIf_2DecodePng", tensor_type=DT_UINT8, _device="job:localhostreplica:0task:0gpu:0"]] 。

似乎Fifo队列是空的(没有填满),因为我想......。

是否有人知道哪部分的slim是负责填补FiFO "这里的代码,我试图......。

dataset_name = 'toto'
dataset_split_name = 'train'
dataset_dir = './dataset/'
num_readers = 1
batch_size = 2
output_padding = 5
dataset_id = 3
num_max_target = 5
num_preprocessing_threads = 1
num_epochs = None

with tf.Graph().as_default():
    dataset = dataset_factory.get_dataset(dataset_name, dataset_split_name, dataset_dir, dataset_id)
    provider = slim.dataset_data_provider.DatasetDataProvider(dataset, num_readers=num_readers, 
        common_queue_capacity=10*batch_size, common_queue_min=5*batch_size, num_epochs=num_epochs,shuffle=False)

    img = provider.get(['frame'])

    i = tf.train.shuffle_batch([tf.reshape(img, shape=[512, 512, 1])],
                batch_size=batch_size,
                num_threads=num_preprocessing_threads,
                capacity=2*batch_size,
                min_after_dequeue=batch_size)

    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        sess.run(tf.local_variables_initializer())

        coord = tf.train.Coordinator()
        threads = tf.train.start_queue_runners(coord=coord)

        img = sess.run(img)
        print('ok ok')

        coord.request_stop()
        coord.join(threads)
tensorflow tf-slim
1个回答
0
投票

我把分布式训练的函数从 tf.distribute.Server()tf.train.Server()train.py 文件,并且它的工作。

© www.soinside.com 2019 - 2024. All rights reserved.