如何将keras输入序列映射到多标签向量
How to map keras input sequence to multi-label vector
如何在 Keras 中创建一个层(我使用的是函数 API),将输入序列转换为多标签向量。该层必须执行映射,我不想通过学习参数权重来学习映射。
作为输入,我在 keras:
中显示了向量
[ nan nan nan nan nan nan 342. 367. 453. 1971. nan nan
nan nan 2]
我需要将输入向量的 前 10 个数字映射到如下所示的向量:
[x1 =0,x2=0,..., x342=1, ..., x367=1,... x453=1,... x1971=1,... xN]
如何创建可以执行此操作的图层?是否有现成的图层?
关于选择 10 个数字的第一部分可以通过使用 Lambda 层的代码完成:
take_n_layer=Lambda(lambda z: z[:, :len(classes)], name='take_n', output_shape=(None, 10))(input_layer)
关于映射输入的第二个问题可以通过使用 CategoryEncoding 层和 output_mode 二进制:
input_categoric_encoding = tf.keras.layers.experimental.preprocessing.CategoryEncoding(max_tokens=num_skills, output_mode="binary")
如何在 Keras 中创建一个层(我使用的是函数 API),将输入序列转换为多标签向量。该层必须执行映射,我不想通过学习参数权重来学习映射。
作为输入,我在 keras:
中显示了向量[ nan nan nan nan nan nan 342. 367. 453. 1971. nan nan
nan nan 2]
我需要将输入向量的 前 10 个数字映射到如下所示的向量:
[x1 =0,x2=0,..., x342=1, ..., x367=1,... x453=1,... x1971=1,... xN]
如何创建可以执行此操作的图层?是否有现成的图层?
关于选择 10 个数字的第一部分可以通过使用 Lambda 层的代码完成:
take_n_layer=Lambda(lambda z: z[:, :len(classes)], name='take_n', output_shape=(None, 10))(input_layer)
关于映射输入的第二个问题可以通过使用 CategoryEncoding 层和 output_mode 二进制:
input_categoric_encoding = tf.keras.layers.experimental.preprocessing.CategoryEncoding(max_tokens=num_skills, output_mode="binary")