tf.keras.layers.experimental.preprocessing.CategoryCrossing
Слои категорического перекрещивания.
Наследуется от: PreprocessingLayer, Layer, Module
tf.keras.layers.experimental.preprocessing.CategoryCrossing(
depth=None, name=None, separator=None, **kwargs
)
Этот слой конкатенирует несколько категориальных входных данных в один категориальный выход (похожий на декартово произведение). Тип данных вывода — строка.
Использование:
inp_1 = ['a', 'b', 'c']
inp_2 = ['d', 'e', 'f']
layer = tf.keras.layers.experimental.preprocessing.CategoryCrossing()
layer([inp_1, inp_2])
<tf.Tensor: shape=(3, 1), dtype=string, numpy=
array([[b'a_X_d'],
[b'b_X_e'],
[b'c_X_f']], dtype=object)>
inp_1 = ['a', 'b', 'c']
inp_2 = ['d', 'e', 'f']
layer = tf.keras.layers.experimental.preprocessing.CategoryCrossing(
separator='-')
layer([inp_1, inp_2])
<tf.Tensor: shape=(3, 1), dtype=string, numpy=
array([[b'a-d'],
[b'b-e'],
[b'c-f']], dtype=object)>
| Аргументы | |
|---|---|
depth | глубина пересечения входных данных. По умолчанию None, все входы пересекаются в один выход. Также может быть целым числом или кортежем/списком целых чисел. Передача целого числа создаст комбинации пересекаемых выходов с глубиной до этого целого числа, т. е., [1, 2, ..., depth), а передача кортежа целых чисел создаст пересекаемые выходы с глубиной для указанных значений в кортеже, т. е., depth=(N1, N2) создаст все возможные пересекаемые выходы с глубиной, равной N1 или N2. Передача None означает единственный пересекаемый выход со всеми входами. Например, с входами a, b и c, depth=2 означает, что выход будет [a;b;c;cross(a, b);cross(bc);cross(ca)]. |
separator | Строка, добавляемая между каждым соединенным входом. По умолчанию 'X'. |
name | Имя слоя. |
**kwargs | Параметры для построения слоя. |
Форма входных данных: список строковых или целочисленных тензоров или разреженных тензоров формы [batch_size, d1, ..., dm]
Форма выходных данных: один строковый или целочисленный тензор или разреженный тензор формы [batch_size, d1, ..., dm]
| Возвращаемое значение | |
|---|---|
Если какой-либо входной параметр RaggedTensor, то выход RaggedTensor. В противном случае, если какой-либо вход SparseTensor, то выход SparseTensor. В противном случае, выход Tensor. |
Пример: (depth=None) Если слой получает три входа: a=[[1], [4]], b=[[2], [5]], c=[[3], [6]] то выход будет строковым тензором: [[b'1_X_2_X_3'], [b'4_X_5_X_6']]
Пример: (depth — целое число) При тех же входных данных выше, и если depth=2, выход будет списком из 6 строковых тензоров: [[b'1'], [b'4']] [[b'2'], [b'5']] [[b'3'], [b'6']] [[b'1_X_2'], [b'4_X_5']], [[b'2_X_3'], [b'5_X_6']], [[b'3_X_1'], [b'6_X_4']]
Пример: (depth — кортеж/список целых чисел) При тех же входных данных выше, и если depth=(2, 3) выход будет списком из 4 строковых тензоров: [[b'1_X_2'], [b'4_X_5']], [[b'2_X_3'], [b'5_X_6']], [[b'3_X_1'], [b'6_X_4']], [[b'1_X_2_X_3'], [b'4_X_5_X_6']]
Методы
adapt
adapt(
data, reset_state=True
)
Настраивает состояние слоя предобработки на передаваемых данных.
| Аргументы | |
|---|---|
data | Данные для обучения. Можно передать как объект tf.data Dataset, так и как массив numpy. |
reset_state | Необязательный аргумент, определяющий, нужно ли очистить состояние слоя в начале вызова adapt, или нужно ли начать с текущего состояния. Этот аргумент может быть не релевантен для всех слоёв предобработки: подкласс PreprocessingLayer может выбрать выброс, если 'reset_state' установлен в False. |
partial_crossing
partial_crossing(
partial_inputs, ragged_out, sparse_out
)
Получает пересечённый выход из частичного списка/кортежа входных данных.
© 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/keras/layers/experimental/preprocessing/CategoryCrossing