[BUG] 从张量构建的 AgentImage 会反转像素值 (255 - 数组 * 255)
描述错误
`AgentImage' 颠倒由收音机所建图像的像素值。 黑出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出
转换在src/smolagents/agent types.py'、to raw()'一行134和`to string()'一行156中两次出现,两者都使用同一种表达式:
数组=自. tensor.cpu (. detach (. numpy ())
img = PIL.Image.framery((255 - 阵列 * 255).astype(np.uint8)) 互联网档案馆的存檔,存档日期2013-12-02.
对于一个具有0, 1' 值的正态图像显示器,缩放到字节范围应当为阵列 * 255' 。 领先的"255 -"翻转了强度.
- 复制步骤
[Python] 将数字导入为 np
数组 = np.linspace(0.0, 1. 0, 5, dtype=np.float32) 空间
电流 = (255 - 数组 * 255) astype(np.uint8) 预期=(阵列 * 255),as类型(np.uint8)
打印(当前)# [255] 191 127 63 0] 打印(预期)# [0 63 127 191 255]
预期行为
`0.0'为黑色并保留`0';`1.0'为白色并保留`255'。
实际行为
`0.0'改为`255'(白色)而`1.0'改为`0'(黑色)。 每一个被取压的 " AgentImage " ,无论是通过 " to raw() " 读取,还是通过 " to string() " 写入磁盘,都作为相片底片还原。
为什么这有可能是无意的
- 两个呼叫站点完全相同,因此,在一个地方没有另一个地方的固定装置会使`to-raw()'和被拯救的巴布亚新几内亚人意见不一。
- PIL号 图像。 图像`和`字节'输入路径没有倒置,因此,同一图片只根据它从哪一种类型构造而改变极性。
- 周围的代码带有注释QQ 可能比装入图像到保存中简单,这说明这个块没有被重新审视.
如果反演是为了我错过的某种热门会议而故意的,那将有助于在评论中说明这一点,因为从呼叫站点来看这是令人惊讶的。
建议改正
将 " 255 - " 号放在两地:
```2ZZ
img = PIL.Image. fromarray ((array * 255)) astype (np.uint8)).
处理两个相关案件是值得的,同时触及这种情况:不应再用0、255'中的整数计数器相乘, " [0、1] " 外的 " float " 计数器可能应当被剪接,而不应由int8 ' 铸成。
乐于打开带有固定和回程测试的公关,声称已知的梯度存活了"to raw()"和"to string()"不变.
内容来源: huggingface/smolagents