问题:
我们的问题是在使用像PLSA这样的机器学习算法时,巨大的浮点值需要花费很多时间。现在,我们如何将浮点精度降低到2位小数并进行数学运算?
我们拥有什么:
使用以下numpy命令初始化np.zeros([2,4,3],np.float)
ndarray: [[[ 0.09997559 0. 0.89990234]
[ 0. 0. 0. ]
[ 0. 0. 0. ]
[ 0. 0. 0. ]]
[[ 0. 0. 0. ]
[ 0.30004883 0.30004883 0.30004883]
[ 0. 0. 0. ]
[ 0. 0. 0. ]]]
**What we needed:**
[[[ 0.1 0. 0.9]
[ 0. 0. 0. ]
[ 0. 0. 0. ]
[ 0. 0. 0. ]]
[[ 0. 0. 0. ]
[ 0.3 0.3 0.3 ]
[ 0. 0. 0. ]
[ 0. 0. 0. ]]]
答案 0 :(得分:1)
您可以使用半精度浮点数来减少内存使用(符号位,5位指数,10位尾数)。请参阅this。
>>> b=np.zeros([2,4,3],np.float)
>>> b.nbytes
192
>>> c=np.zeros([2,4,3],np.float16)
>>> c.nbytes
48