Python 从数据库读取数据的tensorflow

Python 从数据库读取数据的tensorflow,python,database,tensorflow,bigdata,Python,Database,Tensorflow,Bigdata,我是tensorflow的新手。我的数据库中有大量的数据,我希望有一种方法可以在这些数据上训练tensorflow模型。如果我将数据写入csv文件,然后从csv读取数据,我了解如何执行此操作。 但是,我如何直接从数据库中执行此操作呢。我可以从我的脚本(python)连接到数据库并运行SQL查询来检索数据,但是如果我想分批或分阶段学习并混合数据? 此外,数据太大,无法同时保存在内存中。 关于从哪里开始有什么建议吗? 谢谢让我们重申一下这个问题: 不可能将所有数据加载到内存中(即使删除了所有不需要

我是tensorflow的新手。我的数据库中有大量的数据,我希望有一种方法可以在这些数据上训练tensorflow模型。如果我将数据写入csv文件,然后从csv读取数据,我了解如何执行此操作。 但是,我如何直接从数据库中执行此操作呢。我可以从我的脚本(python)连接到数据库并运行SQL查询来检索数据,但是如果我想分批或分阶段学习并混合数据? 此外,数据太大,无法同时保存在内存中。 关于从哪里开始有什么建议吗?
谢谢

让我们重申一下这个问题:

  • 不可能将所有数据加载到内存中(即使删除了所有不需要的元数据)
  • 由于技术或政策原因,无法先查询数据库,然后将结果保存到磁盘作为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
你手头没有素数列表吗?没问题,随便挑一个


对于下一个历元,使用不同的X和Y,您将得到不同的批。

是否有任何东西阻止您多次查询数据库?为什么不能在运行select语句时限制大小,然后从返回的行中创建小批量?然后,在每一行上运行SGD步骤后,运行另一个查询并创建更多的小批次。也许我遗漏了一些你遇到的困难。