Как один закодировать строку тензора фиксированной длиной для использования ТПА? - PullRequest
1 голос
/ 11 ноября 2019

У меня есть тензор tf.string (имя файла) в пределах моих лейблов, которые отлично работает при обучении с GPU, но когда я тренируюсь с помощью TPU я получаю эту ошибку:

File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/tpu/tpu_feed.py", line 494, in generate_dequeue_op
    dtypes=self._tuple_types, shapes=sharded_shapes, name=full_name)
  File "/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/tpu/ops/tpu_ops.py", line 241, in infeed_dequeue_tuple
    "{}".format(dtype, list(_SUPPORTED_INFEED_DTYPES)))
TypeError: <dtype: 'string'> is not a supported TPU infeed type. Supported types are: [tf.float32, tf.int32, tf.complex64, tf.int64, tf.bool, tf.bfloat16, tf.uint32]

В то время как я не»т использовать этот тензор для обучения, тем не менее, мне нужно прочитать из моих TFExamples и распространяются через предсказать () поток моего оценщик для целей оценки. Таким образом, представляется, что мне нужно каким-то образом преобразовать тензор tf.string в некоторый числовой тип для использования с ТПОМ.

1005 * Возможно, я могу преобразовать тензор tf.string в тензор tf.int32 UTF-8 кодовых? Я взял на взгляд на этом уроке: https://www.tensorflow.org/tutorials/load_data/unicode 1008 *, который предлагает что-то вроде:
tf.strings.unicode_encode(
    tf.RaggedTensor.from_tensor(batch_chars_padded, padding=-1),
    output_encoding='UTF-8')

Тем не менее, это не кажется, чтобы дать мне тензор с статической форме, которая необходимадля ТПУ

Общие вопросы: 1). Предположим, что у меня есть тензор tf.string. Как я могу подушечка, что строка фиксированной длины (скажем, 5000 символов), а затем преобразовать его в тензором элемент кода UTF-8? (Возможно, не используя tf.RaggedTensor) 2) Есть ли более общий обходной путь для использования tf.strings с ТПУ (когда они не используются в качестве входного признака).

...