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类型。