将 Tensorflow strings.split 输出转换为 Int

Convert Tensorflow strings.split output to an Int

我有一个包含图像名称的 Tensorflow 数据集。

该名称的一部分是另一个 Python 字典的键。因此,我需要在我的示例代码中拆分图像名称,并将生成的字节字符串转换为我的 Python 字典的 int。但是,我无法转换为所需的整数。

我试过使用 int.from_bytes() 和 byteorder='little' 和 'big',还有 signed = 'True' 和 'False' 但我是得到一个不正确的整数。

我认为这是一项简单的任务,但我缺少一些非常基本的东西?我该如何完成这个? numpy() return?

是什么数据类型
 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()