当 `self` 从 `torch.class` 方法返回到控制台时,为什么 Lua/Torch 运行 内存不足?
Why does Lua/Torch run out of memory when an `self` is returned to console from a `torch.class` method?
我已经将 torch-dataframe to return self
instead of void in order to achieve simple method chaining 修改为 torch.class
。不幸的是,这似乎造成了内存问题的严重破坏:
th> require 'Dataframe'; df = torch.load('dataset_4_torch.t7')
[4.8434s]
th> b = df:create_subsets() -- Works
[0.7384s]
th> df:create_subsets() -- Fails even if called before the b = df:create_...
/home/max/tools/torch/install/bin/luajit: not enough memory
我尝试覆盖对所有返回对象调用的默认打印,但没有帮助。
内存详细信息
这是一些内存分析:
th> collectgarbage("count")
1836.24609375
[0.0002s]
th> require 'Dataframe'; df = torch.load('dataset_4_torch.t7')
[4.6875s]
th> collectgarbage("count")
59659.619140625
[0.0003s]
th> b = df:create_subsets()
[0.7571s]
th> collectgarbage("count")
62303.567382812
[0.0001s]
th> df:create_subsets()
/home/max/tools/torch/install/bin/luajit: not enough memory
如果这个问题很难解决,那么我将不胜感激如何正确应用 method chaining patterns for a torch.class.
的示例
感谢您帮助我。事实证明,我放入了一个断言,并在错误消息中我在某个时候添加了整个列的 tostring。这在我们的测试环境中有效,但在真实数据集中生成了大量字符串,因此出现内存问题。
我已经将 torch-dataframe to return self
instead of void in order to achieve simple method chaining 修改为 torch.class
。不幸的是,这似乎造成了内存问题的严重破坏:
th> require 'Dataframe'; df = torch.load('dataset_4_torch.t7')
[4.8434s]
th> b = df:create_subsets() -- Works
[0.7384s]
th> df:create_subsets() -- Fails even if called before the b = df:create_...
/home/max/tools/torch/install/bin/luajit: not enough memory
我尝试覆盖对所有返回对象调用的默认打印,但没有帮助。
内存详细信息
这是一些内存分析:
th> collectgarbage("count")
1836.24609375
[0.0002s]
th> require 'Dataframe'; df = torch.load('dataset_4_torch.t7')
[4.6875s]
th> collectgarbage("count")
59659.619140625
[0.0003s]
th> b = df:create_subsets()
[0.7571s]
th> collectgarbage("count")
62303.567382812
[0.0001s]
th> df:create_subsets()
/home/max/tools/torch/install/bin/luajit: not enough memory
如果这个问题很难解决,那么我将不胜感激如何正确应用 method chaining patterns for a torch.class.
的示例感谢您帮助我。事实证明,我放入了一个断言,并在错误消息中我在某个时候添加了整个列的 tostring。这在我们的测试环境中有效,但在真实数据集中生成了大量字符串,因此出现内存问题。