gpt4 book ai didi

python-3.x - 将 one-hot 编码目标值映射到正确的标签名称

转载 作者:行者123 更新时间:2023-11-30 08:38:44 25 4
gpt4 key购买 nike

我有一个标签名称列表,我枚举并创建了一个字典:

my_list = [b'airplane',
b'automobile',
b'bird',
b'cat',
b'deer',
b'dog',
b'frog',
b'horse',
b'ship',
b'truck']

label_dict =dict(enumerate(my_list))


{0: b'airplane',
1: b'automobile',
2: b'bird',
3: b'cat',
4: b'deer',
5: b'dog',
6: b'frog',
7: b'horse',
8: b'ship',
9: b'truck'}

现在我正在尝试将字典值清理map/apply到我的目标,该目标采用单热编码形式。

y_test[0]

array([ 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.])


y_test[0].map(label_dict) should return:
'cat'

我正在玩

(lambda key,value: value for y_test[0] == 1)

但无法提出任何具体的

谢谢。

最佳答案

由于我们使用的是 one-hot 编码 数组,因此 argmax 可用于获取每行的一个 1 的索引。因此,使用列表作为输入 -

[my_list[i] for i in y_test.argmax(1)]

或者使用np.take来获得数组输出-

np.take(my_list,y_test.argmax(1))

要使用 dict 并假设顺序键为 0,1,..,我们可以 -

np.take(label_dict.values(),y_test.argmax(1))

如果键本质上不是按顺序排列的,而是已排序的 -

np.take(label_dict.values(), np.searchsorted(label_dict.keys(),y_test.argmax(1)))

示例运行 -

In [79]: my_list
Out[79]:
['airplane',
'automobile',
'bird',
'cat',
'deer',
'dog',
'frog',
'horse',
'ship',
'truck']

In [80]: y_test
Out[80]:
array([[ 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],
[ 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 1., 0.]])

In [81]: [my_list[i] for i in y_test.argmax(1)]
Out[81]: ['cat', 'automobile', 'ship']

In [82]: np.take(my_list,y_test.argmax(1))
Out[82]:
array(['cat', 'automobile', 'ship'],
dtype='|S10')

关于python-3.x - 将 one-hot 编码目标值映射到正确的标签名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44464280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com