python - 神经网络返回类而不是概率
问题描述
我有一个维度为 25000 的 70k 数据的列表,我试图将其输入神经网络以获得 20 种不同事物的分类。在我做任何事情之前系统内存不足。所以我提出了这个想法。所以我将一组特征分成 5 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 个类别之一的概率?
我的方法好用吗?
你能给我一些参考吗?
解决方案
推荐阅读
- javascript - 如果使用确认对话框,history.pushState 会在刷新后删除历史记录
- spartacus-storefront - Spartacus 登录时将语言更改为用户默认语言
- java - (初学者)我似乎无法修复的 Printf 错误
- javascript - 当我编辑第 14 行 addReminder 函数时,该应用程序打破了对我做错了什么的任何洞察力?
- vue.js - NuxtJS:如何在 URL 中传递参数和查询
- performance - 从 C 语言在 CPU 上加载 tensorflow.keras 模型以缩短加载时间的最佳方法是什么?
- php - How can I insert into a table both a select max function from another table and variables input by the user, using PHP, SQL and Microsoft Access?
- excel - 如何计算某个日期之前的日期数(2021 年 3 月 1 日)
- pandas - Numpy 广播比较报告“'bool' object has no attribute 'sum'”错误处理大数据帧时
- python - 基于时间戳列合并两个数据帧