У меня есть список из 70 тыс. Данных измерения 25000, которые я пытаюсь передать в нейронную сеть, чтобы получить классификацию из 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))
У меня есть тот же код для нейронной сети модели 2, обученной на наборе данных Feature2 и так далее. И в итоге я взял среднее из прогнозов.
Вот мой вопрос: предсказание из нейронной сети дает элементарный вектор, а не вероятность. Таким образом, взяв среднее из прогнозов, мы получим вектор 1 и 0. Как я могу измениться так, чтобы на самом деле я получил вероятность быть одним из 20 классов для каждого прогноза?
Можно ли попробовать мой метод?
Можете ли вы дать мне справку?