tf.lookup.TextFileInitializer
Инициализаторы таблиц из текстового файла.
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/api_docs/python/tf/lookup/TextFileInitializer