2024-09-28 22:23:17 发布
网友
我不断地犯这个错误
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运行代码
只需将传递给Box的值的数据类型强制转换为float32:
Box
float32
self.action_space = spaces.Box(np.float32(low), np.float32(high))
例如,所有这些示例都是有效的:
self.action_space = spaces.Box(np.float32(3), np.float32(4.0))
self.action_space = spaces.Box(np.float32(np.array([3.0,3.5])), np.float32(np.array([4.0,4.5])))
self.action_space = spaces.Box(np.array([3.0,3.5],dtype=np.float32), np.array([4.0,4.5],dtype=np.float32))
顺便说一下:虽然您也可以像@Robert Wilkerson所建议的那样将Box-dtype本身显式地强制转换为np.float32,但是没有必要这样做:它不能解决问题,而且它没有任何效果,因为Box的dtype已经默认为np.float32
dtype
np.float32
在调用中显式地将dtype指定为float32,就像这样
self.action_space = spaces.Box(low, high, dtype=np.float32)
如果这不起作用,那么在健身房将记录器级别设置得更低,就像这样
import gym gym.logger.set_level(40)
只需将传递给
Box
的值的数据类型强制转换为float32
:self.action_space = spaces.Box(np.float32(low), np.float32(high))
例如,所有这些示例都是有效的:
self.action_space = spaces.Box(np.float32(3), np.float32(4.0))
self.action_space = spaces.Box(np.float32(np.array([3.0,3.5])), np.float32(np.array([4.0,4.5])))
self.action_space = spaces.Box(np.array([3.0,3.5],dtype=np.float32), np.array([4.0,4.5],dtype=np.float32))
顺便说一下:虽然您也可以像@Robert Wilkerson所建议的那样将
Box
-dtype
本身显式地强制转换为np.float32
,但是没有必要这样做:它不能解决问题,而且它没有任何效果,因为Box
的dtype
已经默认为np.float32
在调用中显式地将
dtype
指定为float32
,就像这样如果这不起作用,那么在健身房将记录器级别设置得更低,就像这样
相关问题 更多 >
编程相关推荐