Почему вместо \\x не появляется \x

Я хочу заменить у тензора символ \\x на \x

import tensorflow as tf


rank_1_tensor = tf.constant([b"{{g|attr('\\x5f\\x5fclass\\x5f\\x5f')}}"])
stripped=tf.strings.regex_replace(rank_1_tensor, b'\\\\x', b'\\x')

Но в итоге stripped оказывается равен - b"{{g|attr('5f5fclass5f5f')}}" А мне нужно, чтобы stripped был равен b"{{g|attr('\x5f\x5fclass\x5f\x5f')}}"

Как верно реализовать такое?

UPD Пример исходной байтовой строки

Она получается путём чтения функцией text_dataset_from_directory, затем вывожу на экран получившееся

raw_train_ds = preprocessing.text_dataset_from_directory(
    train_dir,
    batch_size=batch_size,
    validation_split=0.2,
    subset='training',
    shuffle=0, # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    seed=seed)

for text_batch, label_batch in raw_train_ds.take(1):
  for i in range(batch_size):#10):
    print("Packet: ", text_batch.numpy()[i][:100], '...')
    print("Label:", label_batch.numpy()[i])

но почему-то данные два раза экранируются, пример вывода

Packet:  b"{{g['__class__']['__mro__'][1]['__subclasses__']()[428]('antthing.txt', 'w').write('Hello here !')}}" ...
Label: 0
Packet:  b"{{g['\\x5f\\x5fclass\\x5f\\x5f']['\\x5f\\x5fbase\\x5f\\x5f']}}"

Не решив эту пробему, думал решить её нормализацией, путем замены двойного слэша на одиночный (чтобы превратился в байт), но и это не сработало (описал в начале вопроса)


Ответы (0 шт):