我正在训练一个具有以下结构的keras自动编码器模型:
model = Sequential()
model.add(Dense(128, activation='relu', input_shape=(MAX_CONTEXTS, 3)))
model.add(Dense(64, activation='relu'))
model.add(Dense(32, activation='relu'))
model.add(Dense(64, activation='relu'))
model.add(Dense(128, activation='relu'))
model.add(Dense(3, activation='relu'))
model.compile(optimizer='adam', loss='mse', metrics=['accuracy'])
我的数据为(number_of_samples,430,3(,包含[1.9236653737171141319.242677998256246]中的值。此数据已标准化。然后我训练这个模型:
history = model.fit(X, X, epochs=15, batch_size=2, verbose=1, shuffle=True, validation_split=0.2)
并获得95.03%的准确率(高得令人怀疑,但我现在的问题是其他方面(。现在,当我预测我的数据样本时,正值相对较好,接近输入中的值,但负值都四舍五入为0。这是我选择的损失函数的错误吗?如果是,我应该选择其他哪个损失函数?还是我必须以不同的方式扩展数据?
这是因为您在输出层应用了relu
激活。