Функция strings.to_number
Функция strings.to_number преобразует строки,
содержащие числа, в числовой тензор.
Первым параметром функция принимает строковый тензор
с числовыми значениями. Вторым параметром можно
передать тип данных out_type, который определяет
тип элементов результата, например tf.float32
или tf.int32. По умолчанию используется
tf.float32.
Функция полезна при чтении данных из текстовых файлов, где числа хранятся в виде строк.
Синтаксис
tf.strings.to_number(input, [out_type])
Пример
Давайте преобразуем строковый тензор
'1', '2', '3', '4', '5'
в числовой тензор:
import tensorflow as tf
t = tf.constant(['1', '2', '3', '4', '5'])
res = tf.strings.to_number(t)
print(res)
Результат выполнения кода:
tf.Tensor([1. 2. 3. 4. 5.], shape=(5,), dtype=float32)
Пример
Давайте укажем тип данных tf.int32
для результата:
import tensorflow as tf
t = tf.constant(['1', '2', '3', '4', '5'])
res = tf.strings.to_number(t, out_type=tf.int32)
print(res)
Результат выполнения кода:
tf.Tensor([1 2 3 4 5], shape=(5,), dtype=int32)
Пример
Давайте преобразуем строки с плавающей точкой:
import tensorflow as tf
t = tf.constant(['1.5', '2.7', '3.14'])
res = tf.strings.to_number(t)
print(res)
Результат выполнения кода:
tf.Tensor([1.5 2.7 3.14], shape=(3,), dtype=float32)
Пример
Давайте преобразуем двумерный строковый тензор:
import tensorflow as tf
t = tf.constant([['1', '2', '3'], ['4', '5', '6']])
res = tf.strings.to_number(t, out_type=tf.int32)
print(res)
Результат выполнения кода:
tf.Tensor(
[[1 2 3]
[4 5 6]], shape=(2, 3), dtype=int32)