如何在ImageDataGenerator中热编码顺序数据?

问题描述 投票:0回答:1

我将一些字符串标签转换为标记化序列。

sequences[0]
[3, 2, 4, 1, 8, 3, 7, 11]

每个令牌代表一个特定字符,例如2代表'b'等。>>

现在,要训练神经网络,我想使用ImageDateGenerator来获得一个热编码标签,其外观应如下所示:

[[0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]...]

[ImageDataGenerator有办法做到这一点吗?如果没有,我该怎么处理呢?

谢谢!

我将一些字符串标签转换为标记化序列。 sequence [0] [3、2、4、1、8、3、7、11]每个令牌代表一个特定字符,例如2代表'b'等。现在,训练神经网络,...] >

python generator one-hot-encoding sequential
1个回答
0
投票

您可以执行以下操作:

import numpy as np

a = np.array([3, 2, 4, 1, 8, 3, 7, 11])
b = np.zeros((a.size, 23))
b[np.arange(a.size),a - 1] = 1
print(b)
© www.soinside.com 2019 - 2024. All rights reserved.