如何在tensorflow中存储一个非常大的变量?

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

我必须训练一个非常大的嵌入式字典(大约1TB)。我有很多机器,所以我可以使用tensorflow的分布式训练。

但是,我发现我无法在Parameter Server中构造一个非常大的变量。张量流可以在不同的PS自动分割变量吗?

谢谢。

tensorflow distributed word-embedding
1个回答
1
投票

我还没有看到任何关于自动分裂的东西(仍然在狩猎自己),然而,一个想法是挂钩到Variable Collections

由于TensorFlow程序的断开连接部分可能想要创建变量,因此有一种方法可以访问所有变量。出于这个原因,TensorFlow提供了收藏......

特别关注class VariableV1(Variable) ......


...行1511 - 1512 ...

    if collections is None:
        collections = [ops.GraphKeys.GLOBAL_VARIABLES]

...和线1528 - 1530 ...

    self._trainable = trainable
    if trainable and ops.GraphKeys.TRAINABLE_VARIABLES not in collections:
      collections = list(collections) + [ops.GraphKeys.TRAINABLE_VARIABLES]

...可能有可能将数据拆分为可通过Variable Collections访问的变量列表,但仍然需要将相当大的变量拆分为较小的块,这可能不是最有效的内存。

另一个想法是使用Iterator来读取和解析数据源的块,而不是一次加载所有内容。


如果我设法在其他人之前找到内置的,我会更新。

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