У меня есть набор изображений TFRecordDataset. Каждая запись имеет изображение, целочисленную метку и идентификатор байтового массива. Байт-массив - это шестнадцатеричное представление некоторого числа.
I wi sh для заполнения случайных операций производной от идентификатора. Как мне это сделать?
Следующая попытка не удалась:
def func(image, label, idnum):
'''Example idnum: b"abcdef012"'''
seed = tf.py_function(func=lambda x: int(x.numpy().decode(), 16),
inp=[idnum], Tout=tf.int64)
ran = tf.random.uniform(shape=(), seed=seed)
Вот сообщение об ошибке:
TypeError: Expected int for argument 'seed2' not <tf.Tensor 'random_uniform/mod:0' shape=<unknown> dtype=int64>.
В обычном python, я бы преобразовал такой байтовая строка в int следующим образом:
x = b'abcdef012'
i = int(x.decode(), 16)