我有一个包含图像名称的Tensorflow数据集。
该名称的一部分是一个单独的Python dict的键。因此,我需要在我的示例代码中拆分图像名称,并将产生的字节字符串投向我的Python dict的一个int。然而,我无法将其转换为所需的整数。
我尝试使用 int.from_bytes(),同时使用 byteorder='little'和'big',以及 signed = 'True'和'False',但是我得到的是一个不正确的整数。
我想这是一个简单的任务,而我错过了一些非常基本的东西?我该如何完成这个任务?numpy()会返回什么数据类型?
example_img_name = b'78886804_20140704_0506.tif'
img_name_parts = tf.strings.split(example_img_name, '_')
a_id = img_name_parts[0]
byte_id = a_id.numpy()
print(int.from_bytes(byte_id, byteorder='big', signed=True))
上面的代码打印了整数3978992084860809268。
所需结果是整数78886804。
a_id
是一个UTF-8字符串字节的张量,而不是整数字节。这就是为什么你一直得到错误的整数。
使用python的decode()和encode()来翻译字符串字节和python字符串。
在你的例子中,要想得到字符串版本的byte_id,请执行以下操作。byte_id.decode()