Python UserWarning:WARN:Box-bound精度因强制转换到float32而降低

Python UserWarning:WARN:Box-bound精度因强制转换到float32而降低,python,python-3.x,Python,Python 3.x,我不断地犯这个错误 UserWarning: WARN: Box bound precision lowered by casting to float32 warnings.warn(colorize('%s: %s'%('WARN', msg % args), 'yellow')) 当我开始训练时。我猜是从这一行传来的 self.action_space = spaces.Box(low, high) 代码正在运行,但我想阻止出现此错误 我正在使用cuda pc运行代码。在调用中明确

我不断地犯这个错误

UserWarning: WARN: Box bound precision lowered by casting to float32
  warnings.warn(colorize('%s: %s'%('WARN', msg % args), 'yellow'))
当我开始训练时。我猜是从这一行传来的

self.action_space = spaces.Box(low, high)
代码正在运行,但我想阻止出现此错误


我正在使用cuda pc运行代码。

在调用中明确指定
dtype
float32
,如这样

self.action_space = spaces.Box(low, high, dtype=np.float32)
import gym
gym.logger.set_level(40)
如果这不起作用,那么在健身房将记录器级别设置得更低,就像这样

self.action_space = spaces.Box(low, high, dtype=np.float32)
import gym
gym.logger.set_level(40)
只需将传递给
Box
的值的数据类型转换为
float32

self.action\u space=spaces.Box(np.float32(低)、np.float32(高))

例如,所有这些示例都是有效的:

self.action\u space=spaces.Box(np.float32(3),np.float32(4.0))

self.action\u space=spaces.Box(np.float32(np.array([3.0,3.5])),np.float32(np.array([4.0,4.5]))

self.action\u space=spaces.Box(np.array([3.0,3.5],dtype=np.float32),np.array([4.0,4.5],dtype=np.float32))


顺便说一句:正如@Robert Wilkerson所建议的,虽然您也可以显式地将
-
数据类型
本身转换为
np.float32
,但没有必要这样做:它不能解决问题,由于
Box
dtype
已默认为
np,因此它没有任何效果。float32

将dtype指定为float32将无法解决问题,因为原始警告抱怨正在使用float32。将其设置为
dtype=np.float64
将使警告消失。这应该是可接受的答案
space.Box(a,b,dtype=np.float32)
将在
a
b
不是float32类型(例如,如果它们是默认的python float64)时发出警告。Box的默认数据类型是float32,在OP low和high中可能是float64类型。