神经网络返回类而不是概率

时间:2019-11-06 23:59:03

标签: python neural-network

我有一个25,000维的70k数据列表,我正尝试将这些数据馈入神经网络以获取20种不同事物的分类。在执行任何操作之前,系统内存不足。所以我想到了这个主意。因此,我将要素集划分为55000。然后将维度为5000的5组数据中的每组馈入神经网络。那么预测结果就是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个类别之一?

我的方法可以尝试吗?

你能给我一个参考吗?

0 个答案:

没有答案