tf.lookup.TextFileInitializer
| Просмотреть исходный код на GitHub |
Инициализаторы таблиц из текстового файла.
tf.lookup.TextFileInitializer(
filename,
key_dtype,
key_index,
value_dtype,
value_index,
vocab_size=None,
delimiter='\t',
name=None,
value_index_offset=0
)
Этот инициализатор присваивает одну запись в таблицу для каждой строки в файле.
Тип ключа и значения таблицы для инициализации задаётся key_dtype и value_dtype.
Контент ключа и значения, который нужно получить из каждой строки, задаётся key_index и value_index.
-
TextFileIndex.LINE_NUMBERозначает использование номера строки, начиная с нуля, ожидается тип данных int64. -
TextFileIndex.WHOLE_LINEозначает использование всего содержимого строки, ожидается тип данных string. - Значение
>=0означает использование индекса (начиная с нуля) разделительной строки на основеdelimiter.
Например, если у нас есть файл со следующим содержимым:
import tempfile
f = tempfile.NamedTemporaryFile(delete=False)
content='\n'.join(["emerson 10", "lake 20", "palmer 30",])
f.file.write(content.encode('utf-8'))
f.file.close()
Следующий фрагмент инициализирует таблицу с первым столбцом в качестве ключей и вторым столбцом в качестве значений:
emerson -> 10lake -> 20palmer -> 30
init= tf.lookup.TextFileInitializer( filename=f.name, key_dtype=tf.string, key_index=0, value_dtype=tf.int64, value_index=1, delimiter=" ") table = tf.lookup.StaticHashTable(init, default_value=-1) table.lookup(tf.constant(['palmer','lake','tarkus'])).numpy()
Аналогично, для инициализации всей строки в качестве ключей и номера строки в качестве значений.
emerson 10 -> 0lake 20 -> 1palmer 30 -> 2
init = tf.lookup.TextFileInitializer(
filename=f.name,
key_dtype=tf.string, key_index=tf.lookup.TextFileIndex.WHOLE_LINE,
value_dtype=tf.int64, value_index=tf.lookup.TextFileIndex.LINE_NUMBER)
table = tf.lookup.StaticHashTable(init, -1)
table.lookup(tf.constant('palmer 30')).numpy()
2
| Аргументы | |
|---|---|
filename | Имя файла текстового файла, используемого для инициализации. Путь должен быть доступен из места, где инициализируется граф (например, рабочие процессы тренера или оценки). Имя файла может быть скаляром Tensor. |
key_dtype | Тип данных key. |
key_index | Индекс, представляющий информацию о строке для получения значений ключа таблицы. |
value_dtype | Тип данных value. |
value_index | Индекс, представляющий информацию о строке для получения значений значения таблицы. |
vocab_size | Количество элементов в файле, если известно. |
delimiter | Разделитель для разделения полей в строке. |
name | Имя операции (необязательно). |
value_index_offset | Число, которое добавляется ко всем индексам, извлеченным из файла. Это полезно в случаях, когда пользователь хочет зарезервировать одно или несколько низких значений индексов для управляющих символов. Например, если вы хотите убедиться, что ни один элемент словаря не отображается по индексу 0 (чтобы вы могли зарезервировать 0 для значения маскирования), вы можете установить value_index_offset в 1; это означает, что первый элемент словаря отображается по индексу 1 вместо 0. |
| Исключения | |
|---|---|
ValueError | если имя файла пустое или если типы данных ключа и значения таблицы не соответствуют ожидаемым типам данных. |
| Атрибуты | |
|---|---|
key_dtype | Ожидаемый тип данных ключа таблицы. |
value_dtype | Ожидаемый тип данных значения таблицы. |
Методы
initialize
initialize(
table
)
Инициализирует таблицу из текстового файла.
| Аргументы | |
|---|---|
table | Таблица, которая должна быть инициализирована. |
| Возвращаемое значение | |
|---|---|
| Операция, которая инициализирует таблицу. |
| Исключения | |
|---|---|
TypeError | если типы данных ключей и значений не соответствуют типам данных ключа и значения таблицы. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/lookup/TextFileInitializer