tensorflow从数据库中读取数据

时间:2017-06-18 11:49:42

标签: python database tensorflow bigdata

我是tensorflow的新手。我的数据库中有大量数据,我想要一种方法来训练数据的张量流模型。如果我将数据写入csv文件然后从csv读取数据,我理解如何执行此操作。 但是我如何直接从数据库中执行此操作。我可以从我的脚本(python)连接到数据库并运行SQL查询来检索数据但是如果我想分批或时代学习并混合数据? 此外,数据太大,无法一次性保存在内存中。 关于从哪里开始的任何提示? 谢谢

1 个答案:

答案 0 :(得分:0)

让我们重申一下问题:

  • 无法将所有数据加载到内存中(即使数据被修剪掉了所有不需要的元数据)
  • 不可能(出于技术或政策原因)首先查询数据库,然后将结果作为csv文件保存到磁盘,然后使用csv文件。

如果我们可以实现上述任何一种,那么我们就不会遇到问题。我们一直在以某种方式查询数据库,我们希望:

  • 以小块的方式获取数据

嗯,这很容易!假设我们的数据库有一个数字主键。只需确定您想要数据的块数,并使用像模数

这样的函数
# for 7 batches
key % 7 == 0 gets you the first batch
key % 7 == 1 gets you the second batch
... etc

好的,所以你想添加另一个要求

  • 随机小块的方式获取数据

嗯,这不是太困难。让我们改变选择2个随机数X(最好是素数)和Y(小于批次数)并做同样的事情但是像这样

# for 7 batches
( key * X + Y ) % 7 == 0 gets you the first batch
( key * X + Y ) % 7 == 1 gets you the second batch
... etc

你没有方便的素数列表吗?没问题,just get a whole bunch并随机选择一个。

对于下一个纪元,使用不同的X和Y,你将获得不同的批次。

相关问题