tensorflow从数据库阅读数据

pqwbnv8z  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(207)

我是tensorflow的新手。我的数据库中有大量数据,我想找到一种方法来训练数据上的tensorflow模型。如果我将数据写入csv文件,然后从csv文件阅读数据,我知道如何做到这一点。但我如何直接从数据库中做到这一点。我可以从我的脚本连接到数据库(python)并运行一个SQL查询来检索数据,但如果我想批量或epochs学习并混合数据?而且数据太大,无法一次全部保存在内存中。有从哪里开始的提示吗?谢谢

x4shl7ld

x4shl7ld1#

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

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

如果我们可以实现上面的任何一个,那么我们就不会有这个问题了。我们总是以某种方式查询数据库,我们想:

  • 把数据分成小块

好吧,这很简单!假设我们的数据库有一个数字主键。只需确定您希望数据包含在多少个块中,然后使用类似modulus的函数

# for 7 batches
key % 7 == 0 gets you the first batch
key % 7 == 1 gets you the second batch
... etc

好吧,你想再加一个要求

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

嗯,这并不太难。让我们换两个随机数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,您将得到不同的批次。

相关问题