为什么会呢tensorflow.decode_base64由于无效字符而失败,但base64.b64decode(image_base64)成功

2024-09-29 19:35:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在转换一些图像转换代码来使用tensorflow。在

我的图像作为base64字符串传入。使用以下函数,base64字符串可以被解码并作为np.数组公司名称:


def load_color_image_base64(image_base64):
  img_pil = Image.open(BytesIO(base64.b64decode(image_base64))).convert("RGB")
  return np.array(img_pil)

但是,当我将同一个字符串传递给下面的tensorflow代码时,我得到一个错误:

^{pr2}$

我得到的错误是:

  tf.decode_base64(self._image_b64), channels=3)
  File "/Users/jameskelly/anaconda/envs/im2volume/lib/python2.7/site-packages/tensorflow/python/ops/gen_string_ops.py", line 106, in decode_base64
    "DecodeBase64", input=input, name=name)
  File "/Users/jameskelly/anaconda/envs/im2volume/lib/python2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
    op_def=op_def)
  File "/Users/jameskelly/anaconda/envs/im2volume/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 2956, in create_op
    op_def=op_def)
  File "/Users/jameskelly/anaconda/envs/im2volume/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 1470, in __init__
    self._traceback = self._graph._extract_stack()  # pylint: disable=protected-access

InvalidArgumentError (see above for traceback): Invalid character found in base64.
     [[Node: DecodeBase64 = DecodeBase64[_device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_Placeholder_2_0_2)]]

应该注意的是,这个代码是在flaskapi后面的。当我直接运行该类时,从磁盘加载映像并将其直接转换为base64,这两种情况都有效。在

我还将base64字符串转换为python str类型,因为它是作为unicode传入的,所以错误消息没有更改。在


Tags: 字符串inimagelibtensorflowdefsiteanaconda

热门问题