【问题标题】:Convert Tensorflow strings.split output to an Int将 TensorFlow strings.split 输出转换为 Int
【发布时间】:2020-05-12 17:11:38
【问题描述】:

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

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

我尝试使用 int.from_bytes() 与 byteorder='little' 和 'big' 以及有符号 = '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】:

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

    使用 python decode() 和 encode() 在字符串字节和 python 字符串之间进行转换。

    在您的情况下,要获取 byte_id 的字符串版本,请执行 byte_id.decode()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-18
      相关资源
      最近更新 更多