Я читал этот код. Из T5
учебника .. Я нашел этот фрагмент.
def nq_dataset_fn(split, shuffle_files=False):
# We only have one file for each split.
del shuffle_files
# Load lines from the text file as examples.
ds = tf.data.TextLineDataset(nq_tsv_path[split])
# Split each "<question>\t<answer>" example into (question, answer) tuple.
ds = ds.map(
functools.partial(tf.io.decode_csv, record_defaults=["", ""],
field_delim="\t", use_quote_delim=False),
num_parallel_calls=tf.data.experimental.AUTOTUNE)
# Map each tuple to a {"question": ... "answer": ...} dict.
ds = ds.map(lambda *ex: dict(zip(["question", "answer"], ex)))
return ds
В случае tf.io.decode_csv()
мы передаем record_defaults
в ["",""]
. Что это значит? С do c Я только это понимаю.
record_defaults
: список объектов Tensor с указанными c типами. Допустимые типы: float32
, float64
, int32
, int64
, string
. Один тензор на столбец входной записи со скалярным значением по умолчанию для этого столбца или пустым вектором, если столбец необходим.
Кто-нибудь может объяснить?