Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在tensorflow中读取大型数据集_Python_Deep Learning_Tensorflow - Fatal编程技术网

Python 在tensorflow中读取大型数据集

Python 在tensorflow中读取大型数据集,python,deep-learning,tensorflow,Python,Deep Learning,Tensorflow,我不太清楚文件队列是如何工作的。我尝试使用像imagenet这样的大型数据集作为输入。所以预加载数据不是这样,所以我想知道如何使用文件队列。根据教程,我们可以将数据转换为TFRecords文件作为输入。现在我们有了一个大的TFRecords文件。因此,当我们为读卡器指定FIFO队列时,是否意味着程序每次都会获取一批数据,并向图形中输入数据,而不是加载整个数据文件?预获取的数量取决于您的队列容量。如果对文件名使用string\u input\u producer,对批处理使用batch,则将有两个

我不太清楚文件队列是如何工作的。我尝试使用像imagenet这样的大型数据集作为输入。所以预加载数据不是这样,所以我想知道如何使用文件队列。根据教程,我们可以将数据转换为TFRecords文件作为输入。现在我们有了一个大的TFRecords文件。因此,当我们为读卡器指定FIFO队列时,是否意味着程序每次都会获取一批数据,并向图形中输入数据,而不是加载整个数据文件?

预获取的数量取决于您的队列容量。如果对文件名使用
string\u input\u producer
,对批处理使用
batch
,则将有两个队列—文件名队列和批处理创建的预取队列。由
batch
创建的队列的默认容量为
32
,由
batch(…,capacity=)
参数控制,因此它最多可以预取
32
图像。如果您遵循TensorFlow official howto中的大纲,处理示例(批处理之后的所有内容)将发生在Python主线程中,而填充队列将发生在由批处理/启动队列运行程序创建/启动的线程中,因此,预取新数据和通过网络运行预取数据将同时发生,在队列满或空时阻塞。

所以所有“读取”、“解析”和“预处理”步骤都被定义为管道,对吗?只有当真正的数据进入并填满队列时,才会发生真正的操作。是机械装置吗?是的。这是一个管道,所以需要批处理输出的东西将被阻塞,直到另一个线程将足够的东西排到这个队列中。好吧,这非常有用。非常感谢你的帮助。