gpt4 book ai didi

keras to_categorical 增加了额外的值(value)

转载 作者:行者123 更新时间:2023-12-03 16:38:50 24 4
gpt4 key购买 nike

我有 4 个需要预测的类,我使用的是 keras 的 to_categorical为了实现这一点,我希望得到 4 one-hot-encoded数组,但似乎我得到了 5 个值,一个额外的 [0]值出现在所有行

dict = {'word': 1, 'feature_name': 2, 'feature_value': 3, 'part_number': 4}
Y = dataset['class'].apply(lambda label: dict[label])
print(Y.unique()) #prints [1 4 2 3]
train_x, test_x, train_y, test_y = model_selection.train_test_split(X, Y, test_size=0.2, random_state=0)
train_y = to_categorical(train_y)
print(train_y[0])# prints [0. 0. 1. 0. 0.]

我试图建立的模型如下
model = Sequential()
model.add(Dense(10, input_dim=input_dim, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(10, activation='relu'))
model.add(Dense(4, activation='softmax'))

但后来它一直在扔
ValueError: Error when checking target: expected dense_5 to have shape (4,) but got array with shape (5,)

最佳答案

您需要从 0 开始对类进行编号,如下所示:

dict = {'word': 0, 'feature_name': 1, 'feature_value': 2, 'part_number': 3}

您可以使用 help() 命令获取该函数的描述
help(np_utils.to_categorical)

:
Help on function to_categorical in module keras.utils.np_utils:

to_categorical(y, num_classes=None, dtype='float32')
Converts a class vector (integers) to binary class matrix.

E.g. for use with categorical_crossentropy.

# Arguments
y: class vector to be converted into a matrix
(integers from 0 to num_classes).
num_classes: total number of classes.
dtype: The data type expected by the input, as a string
(`float32`, `float64`, `int32`...)

# Returns
A binary matrix representation of the input. The classes axis
is placed last.

关于keras to_categorical 增加了额外的值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56253892/

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