tf.lookup.TextFileInitializer
| Просмотреть исходный код на GitHub |
Инициализаторы таблицы из текстового файла.
tf.lookup.TextFileInitializer(
filename, key_dtype, key_index, value_dtype, value_index, vocab_size=None,
delimiter='\t', name=None
)
Этот инициализатор назначает одну запись в таблицу для каждой строки в файле.
Тип ключа и значения таблицы для инициализации задаётся 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,
delimiter=" ")
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 | Имя операции (необязательно). |
| Возможные исключения | |
|---|---|
ValueError | при пустом имени файла или при несоответствии типов данных ключа и значения таблицы ожидаемым типам данных. |
| Атрибуты | |
|---|---|
key_dtype | Ожидаемый тип данных ключа таблицы. |
value_dtype | Ожидаемый тип данных значения таблицы. |
Методы
initialize
initialize(
table
)
Инициализирует таблицу из текстового файла.
| Аргументы | |
|---|---|
table | Таблица, которая должна быть инициализирована. |
| Возвращаемое значение | |
|---|---|
| Операция, которая инициализирует таблицу. |
| Возможные исключения | |
|---|---|
TypeError | при несоответствии типов данных ключей и значений типам данных ключа и значения таблицы. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/lookup/TextFileInitializer