keras.utils.to_categorical() 如何支持多个值?

How can keras.utils.to_categorical() support more than one value?

我知道 keras.utils.to_categorical() 可用于单热编码,如转换 2 -> [0., 0., 1., 0.] 的示例中所示,但是否有可能产生类似的输出对此? 2, 3 -> [0., 0., 1., 1.] 如果可以,请问如何?

您可以使用以下方法执行此操作:

layer = tf.keras.layers.CategoryEncoding(output_mode="multi_hot", num_tokens=4)

[nav] In [50]: layer([[2,3]])                                                                                                                                               
Out[50]: <tf.Tensor: shape=(1, 4), dtype=float32, numpy=array([[0., 0., 1., 1.]], dtype=float32)>   

tf.keras.utils.to_categorical用于计算分类交叉熵的过程,这是二分类的损失函数。另请注意,您需要计算出您拥有的令牌数量,这里我假设 4 来涵盖您的 [2, 3] 场景。在这种情况下,编码器可以编码 [0, 1, 2, 3],你可以将任意长度的样本传递给它,它会将它们编码为 [0|1, 0|1, 0|1, 0|1]。