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