【发布时间】:2020-10-26 01:06:18
【问题描述】:
假设我有如下一组输入输出:
input1 : [0 1 1 1 0 ... 1]
output1 : [1 2 2 3 ... 3 3 1 2 2]
...
输入始终为 0 或 1,输出始终为 1 或 2 或 3
如何在 keras 中创建适合这些输入输出的神经网络?
checkpoint_path = 'p-multilable.h5'
checkpoint = keras.callbacks.ModelCheckpoint(filepath=checkpoint_path, mode='max', monitor='acc', verbose=0, save_best_only=True)
model = keras.models.Sequential([
keras.layers.Dense(1000,activation='relu', input_shape=X_train.shape[1:]),
keras.layers.Dense(300,),
keras.layers.Dense(300,),
keras.layers.Dense(53)])
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['acc'])
model.fit(X_train, y_train, batch_size=100, epochs=1000, validation_data=(x_val, y_val), callbacks=[checkpoint])
我尝试将输出标准化为 0 0.5 1,但没有帮助。
我尝试了各种损失函数
我尝试定义自定义损失函数
我尝试了很多网络架构
在大多数情况下,它的 acc 约为 0.09
理论上它只不过是二元集,应该不难,但我找不到合适的方法
【问题讨论】:
标签: keras neural-network multilabel-classification multiclass-classification