对于我要解决的问题,以下情况属实:
我目前接近这个的方式如下:
问题
代码
test_fraction = 0.2
dropout_prob = 0.4
activation_function = 'relu'
loss_function = 'categorical_crossentropy'
opt = Adam()
verbose_level = 1
num_targets = 12
batch_size = 32
epochs = 75
X = np.array(keypoints)
labels = np.array(labels)
labels = np_utils.to_categorical(labels)
X_train, X_test, y_train, y_test = train_test_split(X, labels, test_size=test_fraction, random_state=42)
# model training
model = Sequential()
model.add(Dense(32, input_shape=(180,)))
model.add(Dense(64, activation=activation_function))
model.add(Dense(128, activation=activation_function))
model.add(Dense(num_targets, activation='sigmoid'))
model.summary()
model.compile(loss=loss_function, optimizer=opt, metrics=['accuracy'])
history = model.fit(X_train, y_train, batch_size=batch_size, epochs=epochs, verbose=verbose_level,
validation_data=(X_test, y_test))
model.save('../models/model.h5')
答案 0 :(得分:0)
这称为多标签分类,可以通过在模型中进行两处更改来轻松实现:
然后训练你的模型。
答案 1 :(得分:0)
开始正确
model.add(Dense(num_targets, activation='sigmoid'))
到
model.add(Dense(num_targets, activation='softmax'))
sigmoid activation
用于二进制分类而非多类分类
要回答你的问题我会说