关于存储大小的问题
whwh747 opened this issue · 18 comments
您好,感谢您出色的工作。我在A6000上初步运行了您的代码,发现truck bitstream=0.004 30000次迭代之后point_cloud.ply的大小是153.36MB,和论文Table D中的9.26MB相差较大,请问是我弄错什么了吗?希望您不吝赐教!
模型参数需要进行编码后再存储,编码后的文件在./bitstreams文件夹中。(也就是那些.b文件)
point_cloud.ply是原始的模型参数,并不是编码后的文件。
训练完后,你可以删去point_cloud.ply,因为模型参数都已经被编码存储在./bitstreams文件夹中了。
你应该查看./bitstreams文件夹的大小。
模型参数需要进行编码后再存储,编码后的文件在./bitstreams文件夹中。(也就是那些.b文件) point_cloud.ply是原始的模型参数,并不是编码后的文件。 训练完后,你可以删去point_cloud.ply,因为模型参数都已经被编码存储在./bitstreams文件夹中了。 你应该查看./bitstreams文件夹的大小。
你好,我也有这个疑问,你的意思是说我们的项目是在根据得到的ply文件,然后压缩获取算法变成一个./bitstreams文件夹中的文件吗,这个文件夹的信息,是压缩点的信息,并不是把点的信息变少,对吗
你好,点的位数没变,但是其信息熵通过我们的hash feature的预测降低了。信息熵降低后才可以利用算术编码实现编码压缩。
你好,点的位数没变,但是其信息熵通过我们的hash feature的预测降低了。信息熵降低后才可以利用算术编码实现编码压缩。
好的,谢谢
你好,点的位数没变,但是其信息熵通过我们的hash feature的预测降低了。信息熵降低后才可以利用算术编码实现编码压缩。
你好。方便解答一下我上面提的关于anchor文件大小的问题吗?谢谢
你好,我们的工作对anchor采用16位的量化方式,那么在计算anchor的size的时候每个参数的size是16bit。在实际存储时为了方便,是16位量化后直接用torch保存的,这时候默认的保存格式是float32,但是实际上已经16位量化过了。因此出现了两倍的情况。你可以修改保存相关的代码,让pytorch保存为float16,这时候应该就是大小一致的。
祝好
你好,我们的工作对anchor采用16位的量化方式,那么在计算anchor的size的时候每个参数的size是16bit。在实际存储时为了方便,是16位量化后直接用torch保存的,这时候默认的保存格式是float32,但是实际上已经16位量化过了。因此出现了两倍的情况。你可以修改保存相关的代码,让pytorch保存为float16,这时候应该就是大小一致的。
祝好
好的。谢谢哥们。
模型参数需要进行编码后再存储,编码后的文件在./bitstreams文件夹中。(也就是那些.b文件) point_cloud.ply是原始的模型参数,并不是编码后的文件。 训练完后,你可以删去point_cloud.ply,因为模型参数都已经被编码存储在./bitstreams文件夹中了。 你应该查看./bitstreams文件夹的大小。
你好,直接删去point_cloud.ply后,在测试的时候,会报错找不到point_cloud.ply文件,请问该怎么解决这个错误呢?
你好,目前的代码逻辑是从bitstream中解码得到point_cloud.ply,然后模型权重仍然读取此point_cloud.ply来测试(相当于point_cloud.ply是一个桥梁)。因此如果你删去了point_cloud.ply,你需要重新跑解码函数从bitstream中重新解码得到point_cloud.ply后再进行测试。
或者你可以修改代码,让模型直接从bitstream的解码结果里读取权重,这样就不需要point_cloud.ply这个中间文件了。
BTW,你应该把删去point_cloud.ply的操作放在编码后且解码前的位置,而不是放在解码后的位置,因为point_cloud.ply是解码结果。
祝好
你好,目前的代码逻辑是从bitstream中解码得到point_cloud.ply,然后模型权重仍然读取此point_cloud.ply来测试(相当于point_cloud.ply是一个桥梁)。因此如果你删去了point_cloud.ply,你需要重新跑解码函数从bitstream中重新解码得到point_cloud.ply后再进行测试。
或者你可以修改代码,让模型直接从bitstream的解码结果里读取权重,这样就不需要point_cloud.ply这个中间文件了。
BTW,你应该把删去point_cloud.ply的操作放在编码后且解码前的位置,而不是放在解码后的位置,因为point_cloud.ply是解码结果。
祝好
谢谢你的解答,按照你上面的逻辑应该可以。但是我发现在保存point_cloud.ply文件的时候(gaussian_model.py line 634 save_ply函数),好像是直接从优化变量中读取,并没有涉及从bitstream解码得到,这是为什么呢?
你好,编码和解码函数分别在gaussian_model.py的第1074和1228行,他们在train.py里在最后一个训练iteration的时候被调用了(train.py的第299-308行)。此时你所提到的save_ply函数里所save的point_cloud.ply其实已经是解码过后的了。
在conduct_decoding函数中有将原始的变量替换为解码后的变量的过程(1339行 -1366行)。
你好,编码和解码函数分别在gaussian_model.py的第1074和1228行,他们在train.py里在最后一个训练iteration的时候被调用了(train.py的第299-308行)。此时你所提到的save_ply函数里所save的point_cloud.ply其实已经是解码过后的了。
在conduct_decoding函数中有将原始的变量替换为解码后的变量的过程(1339行 -1366行)。
明白了,谢谢你。
模型参数需要进行编码后再存储,编码后的文件在./bitstreams文件夹中。(也就是那些.b文件) point_cloud.ply是原始的模型参数,并不是编码后的文件。 训练完后,你可以删去point_cloud.ply,因为模型参数都已经被编码存储在./bitstreams文件夹中了。 你应该查看./bitstreams文件夹的大小。
您好,请问存储大小是看bitstreams文件夹中所有文件的大小,还是只需要看anchor.pkl文件的大小呢。我在A100上跑了drjohnson数据集,单看anchor.pkl文件是4.87MB,整个bitstreams文件夹的大小是17.9MB,和论文中的7.67都相差较多。怎么计算存储大小才是正确的呢? 感谢您的耐心解答
模型参数需要进行编码后再存储,编码后的文件在./bitstreams文件夹中。(也就是那些.b文件) point_cloud.ply是原始的模型参数,并不是编码后的文件。 训练完后,你可以删去point_cloud.ply,因为模型参数都已经被编码存储在./bitstreams文件夹中了。 你应该查看./bitstreams文件夹的大小。
您好,请问存储大小是看bitstreams文件夹中所有文件的大小,还是只需要看anchor.pkl文件的大小呢。我在A100上跑了drjohnson数据集,单看anchor.pkl文件是4.87MB,整个bitstreams文件夹的大小是17.9MB,和论文中的7.67都相差较多。怎么计算存储大小才是正确的呢? 感谢您的耐心解答
你好,我们在跑的时候没有遇到这个问题。你的问题可能是训练时的随机性所致,建议你可以尝试使用最新的代码再重新跑一遍。另外,关于文件的大小建议参考我们的output.log文档,里面的数值更准确。计算size的时候,建议使用os.path.getsize逐个文件计算大小后加和。
模型参数需要进行编码后再存储,编码后的文件在./bitstreams文件夹中。(也就是那些.b文件) point_cloud.ply是原始的模型参数,并不是编码后的文件。 训练完后,你可以删去point_cloud.ply,因为模型参数都已经被编码存储在./bitstreams文件夹中了。 你应该查看./bitstreams文件夹的大小。
您好,请问存储大小是看bitstreams文件夹中所有文件的大小,还是只需要看anchor.pkl文件的大小呢。我在A100上跑了drjohnson数据集,单看anchor.pkl文件是4.87MB,整个bitstreams文件夹的大小是17.9MB,和论文中的7.67都相差较多。怎么计算存储大小才是正确的呢? 感谢您的耐心解答
你好,我们在跑的时候没有遇到这个问题。你的问题可能是训练时的随机性所致,建议你可以尝试使用最新的代码再重新跑一遍。另外,关于文件的大小建议参考我们的output.log文档,里面的数值更准确。
模型参数需要进行编码后再存储,编码后的文件在./bitstreams文件夹中。(也就是那些.b文件) point_cloud.ply是原始的模型参数,并不是编码后的文件。 训练完后,你可以删去point_cloud.ply,因为模型参数都已经被编码存储在./bitstreams文件夹中了。 你应该查看./bitstreams文件夹的大小。
您好,请问存储大小是看bitstreams文件夹中所有文件的大小,还是只需要看anchor.pkl文件的大小呢。我在A100上跑了drjohnson数据集,单看anchor.pkl文件是4.87MB,整个bitstreams文件夹的大小是17.9MB,和论文中的7.67都相差较多。怎么计算存储大小才是正确的呢? 感谢您的耐心解答
你好,我们在跑的时候没有遇到这个问题。你的问题可能是训练时的随机性所致,建议你可以尝试使用最新的代码再重新跑一遍。另外,关于文件的大小建议参考我们的output.log文档,里面的数值更准确。
对的,可能是训练的随机性所致,你可以尝试着重新跑一下。
模型参数需要进行编码后再存储,编码后的文件在./bitstreams文件夹中。(也就是那些.b文件) point_cloud.ply是原始的模型参数,并不是编码后的文件。 训练完后,你可以删去point_cloud.ply,因为模型参数都已经被编码存储在./bitstreams文件夹中了。 你应该查看./bitstreams文件夹的大小。
您好,请问存储大小是看bitstreams文件夹中所有文件的大小,还是只需要看anchor.pkl文件的大小呢。我在A100上跑了drjohnson数据集,单看anchor.pkl文件是4.87MB,整个bitstreams文件夹的大小是17.9MB,和论文中的7.67都相差较多。怎么计算存储大小才是正确的呢? 感谢您的耐心解答
你好,我们在跑的时候没有遇到这个问题。你的问题可能是训练时的随机性所致,建议你可以尝试使用最新的代码再重新跑一遍。另外,关于文件的大小建议参考我们的output.log文档,里面的数值更准确。
对的,可能是训练的随机性所致,你可以尝试着重新跑一下。
好的,非常感谢您耐心解答。我重新跑一下试试,也可能跟显卡不同有关系