我正试图开始关注CNN并开始使用一个相当简单的213行数据集。每个都被分类,因此它必须符合98个类别中的6个。即使是简单的3层网,在50k + Epochs之后也不会超过20%的准确度。有什么建议吗?
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Flatten
from keras.layers import LSTM
from keras.layers import Dropout
from keras.layers import Reshape
from keras.layers import MaxPooling2D
from keras.layers.convolutional import Convolution1D
from keras.layers.convolutional import Convolution2D
from keras.layers.normalization import BatchNormalization
import numpy
ins = numpy.loadtxt("inputs.csv", delimiter=",")
outs = numpy.loadtxt("probs.csv", delimiter=",")
X = ins[:,0:9]
Y = outs[:,0:98]
model = Sequential()
model.add(Dense(12, input_dim=9, activation='sigmoid'))
model.add(Dense(60, activation='relu'))
model.add(Dense(97, activation='sigmoid'))
model.compile(loss='mean_absolute_percentage_error', optimizer='RMSprop', metrics=['accuracy'])
model.fit(X, Y, epochs=50000, batch_size=200)
scores = model.evaluate(X, Y)
print("\n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
提前感谢任何见解。
干杯,
L3fos
答案 0 :(得分:1)
如果我理解正确,您使用具有6个功能和98个类的数据集。 98课真的很多。
如果我们计算98/6 = 16.3,我们得到的值如果你使用随机你可以预测多少。你有20% 所以你比随机要好一点。
数据是否可能混乱且与类无关。
如果你能告诉我你的数据和你的目标,我可以看看:)
答案 1 :(得分:0)
我建议将第一层的激活设置为ReLu。