我已将torch-dataframe修改为返回self
而非void,以便为torch.class
实现简单的method chaining。不幸的是,这似乎对内存问题造成了严重破坏:
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的torch.class模式。
答案 0 :(得分:0)
感谢您帮助我。事实证明,我输入了一个断言,并在错误消息中,我在某个时刻添加了整个列的tostring。这在我们的测试环境中起作用,但是在真实的数据集中,生成了大量的字符串,因此产生了内存问题。