用神经网络返回类代替概率

2024-05-12 21:48:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个70k的25000维数据列表,我正试图将其输入神经网络,以获得20种不同事物的分类。我还没来得及做什么,系统内存就用完了。所以我想出了这个主意。因此,我将这组特征划分为5000个,然后将这5组5000维的数据中的每一个输入到一个神经网络中。那么预测的结果就是5个变量的平均值

下面是我如何分离数据的:

datas_feature1=datas[:,0:5000]
datas_feature2=datas[:,5000:10000]
datas_feature3=datas[:,10000:15000]
datas_feature4=datas[:,15000:20000]
datas_feature5=datas[:,20000:25000]

然后我将它们分别输入一个神经网络:

model1 = Sequential()
model1.add(layers.Dense(300, activation = "relu", input_shape=(5000,)))
# Hidden - Layers
model1.add(layers.Dropout(0.4, noise_shape=None, seed=None))
model1.add(layers.Dense(20, activation = "softmax"))
model1.summary()

model1.compile(loss="categorical_crossentropy",
              optimizer="adam",
              metrics=['accuracy'])
model1.fit( np.array(vectorized_training1), np.array(y_train_neralnettr),
          batch_size=2000,
          epochs=10,
          verbose=1,
          validation_data=(np.array(vectorized_validation1), np.array(y_validation_neralnet)))
predict1= model1.predict(np.array(vectorized_validation1))

我有同样的代码用于在feature2数据集上训练的model2神经网络,等等。 最后,我计算了预测的平均值

这是我的问题:神经网络预测给出的是一个基本向量,而不是概率。因此,对预测进行平均,将返回1和0的向量。我怎样才能改变,使我真正得到成为每个预测的20个类之一的概率

我的方法好尝试吗

你能给我一些推荐信吗


Tags: 数据noneaddlayersnp神经网络arrayactivation