【发布时间】:2020-12-07 08:02:36
【问题描述】:
总参数:48K
输入 X:
array([[ 1964, 12, 32772, ..., 0, 6176, 0],
[ 1964, 12, 32772, ..., 0, 6841, 0],
[ 1964, 28, 32772, ..., 0, 6176, 0],
...,
[ 7400, 20, 41565, ..., 0, 8149, 0],
[ 7400, 20, 41565, ..., 0, 8151, 0],
[ 7400, 20, 41565, ..., 0, 8150, 0]], dtype=int32)
输出 y:
array([0., 0., 0., ..., 1., 0., 0.])
模型结构:
model = Sequential()
model.add(BatchNormalization(input_shape=(7,)))
model.add(Dense(32, activation="relu"))
model.add(Dense(32, activation="relu"))
model.add(Dense(64, activation="relu"))
model.add(Dense(32, activation="relu"))
model.add(Dense(32, activation="relu"))
model.add(Dense(16, activation="relu"))
model.add(Dense(1, activation=None))
在第一个输入层中,我使用批量标准化,并且我的 acc 从 50 增加到 73,我的意思是这是一个很好的解决方案..
模型编译
model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
我也尝试了“adam”,结果相同。
模型拟合:
history = model.fit(x_train, y_train, batch_size=2048, validation_data=(x_test, y_test), epochs=1000)
我也尝试更多组合,epochs=30000 和批量大小 1024 并获得 acc 78.51。
我也尝试将每一层都加倍,节点*2:
我有 16k 输出 1,所以通过这个解决方案,我得到 6k 校正预测。 @ epochs=30000 和批量大小 1024,优化器 adam @
模型结构:
model = Sequential()
model.add(BatchNormalization(input_shape=(7,)))
model.add(Dense(64, activation="relu"))
model.add(Dense(64, activation="relu"))
model.add(Dense(128, activation="relu"))
model.add(Dense(32, activation="relu"))
model.add(Dense(1, activation='sigmoid'))
我的简单问题是如何增加 acc 以获得更正确的预测?
【问题讨论】:
-
这是“百万问题”,没有办法提前确定。您或许也应该尝试增强技术。
-
“图像增强技术”是的,你如何使用这个数据集?
-
如果您想要针对主要基于图像的 CNN 问题进行稳健的特征提取,则增强主要是一种技术。例如。如果对它们应用某种转换,则可以多次使用特征,从而获得更多的训练数据。虽然这取决于您的数据,但它肯定不适用于所有类型的功能。
标签: python tensorflow keras artificial-intelligence prediction