首页 > 解决方案 > Python 多输入 - 多输出神经网络归一化 - 逆结果

问题描述

我正在尝试为数据预测模型创建一个 5 输入和 5 输出的神经网络。在下面的示例中,5 个输入是 10,8,6,4,2,5 个输出是 5,4,3,2,1,最后一行运行后我得到以下输出;数组([[0.33333334, 0.26666668, 0.19999999, 0.13333334, 0.06666668]], dtype=float32)

关于如何让输出数组显示值 5,4,3,2,1 的任何建议,这是它所训练的?

import warnings
warnings.filterwarnings('ignore')

import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import SGD
import numpy as np
import pandas as pd

x_train = np.array([[10,8,6,4,2],
                  [10,8,6,4,2],
                  [10,8,6,4,2],
                  [10,8,6,4,2],
                  [10,8,6,4,2],
                  [10,8,6,4,2],
                  [10,8,6,4,2],
                  [10,8,6,4,2],
                  [10,8,6,4,2],
                  [10,8,6,4,2]])

y_train = np.array([[5,4,3,2,1],
                  [5,4,3,2,1],
                  [5,4,3,2,1],
                  [5,4,3,2,1],
                  [5,4,3,2,1],
                  [5,4,3,2,1],
                  [5,4,3,2,1],
                  [5,4,3,2,1],
                  [5,4,3,2,1],
                  [5,4,3,2,1]])

x_test = np.array([[10,8,6,4,2],
                 [10,8,6,4,2]])

y_test = np.array([[5,4,3,2,1],
                 [5,4,3,2,1]])

model = Sequential()
model.add(Dense(64, activation='relu', input_dim=5))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(5, activation='softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)

model.compile(loss='categorical_crossentropy',optimizer=sgd,metrics=['accuracy'])

model.fit(x_train, y_train,epochs=2000,batch_size=128)

model.predict(x_train[1:2], batch_size=None, verbose=0, steps=None)

标签: pythonneural-network

解决方案


推荐阅读