将Tensorflow strings.split输出转换为Int。

问题描述 投票:0回答:1

我有一个包含图像名称的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。

python python-3.x tensorflow casting byte
1个回答
1
投票

a_id 是一个UTF-8字符串字节的张量,而不是整数字节。这就是为什么你一直得到错误的整数。

使用python的decode()和encode()来翻译字符串字节和python字符串。

在你的例子中,要想得到字符串版本的byte_id,请执行以下操作。byte_id.decode()

© www.soinside.com 2019 - 2024. All rights reserved.