gpt4 book ai didi

numpy - 将 numpy 数组运算符保留在 np.float32 中

转载 作者:行者123 更新时间:2023-12-05 01:17:02 30 4
gpt4 key购买 nike

a = np.random.random((512,512,3)).astype(np.float32)
b = np.ones((512,512,1), dtype=np.int32)
c = a / b
c.dtype

>> dtype('float64')

将一个 float32 矩阵除以一个 int32 矩阵得到一个 float64 矩阵。目前我必须做的

return c.astype(np.float32)

这是 CPU 的额外工作。有没有办法避免最终转换并告诉 numpy 在 float32 中完成工作?

最佳答案

您必须使用 np.divide()out 参数。

[~/scratch]
|1> a = np.random.random((512,512,3)).astype(np.float32)

[~/scratch]
|2> b = np.ones((512,512,1), dtype=np.int32)

[~/scratch]
|3> c = np.empty_like(a)

[~/scratch]
|4> c = np.divide(a, b, c)

[~/scratch]
|5> c.dtype
dtype('float32')

在 numpy 1.6 中,您将能够执行 c = np.divide(a, b, dtype=np.float32)

关于numpy - 将 numpy 数组运算符保留在 np.float32 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5876493/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com