我的问题是:如果我想使用多个输入数据(X的多个特征)像这样(示例):
trainX = np.array([[1,2], [2,2] ,[3,3.23] ,[4.11,4] , [5,5.11] , [6,6] ,[7,7], [8,8.1], [9,9],[10,10]])
代码:
import numpy as npfrom keras.models import Sequentialfrom keras.layers import Dense, Activation# 教授网络“表3”trainX = np.array([1, 2 ,3 ,4 , 5 , 6 ,7, 8, 9,10])trainY = np.array([3, 6, 9, 12, 15, 18, 21, 24, 27, 30])model = Sequential()model.add(Dense(8, input_dim=1, activation='relu'))model.add(Dense(1))model.compile(loss='mean_squared_error', optimizer='adam')model.fit(trainX, trainY, nb_epoch=1200, batch_size=2, verbose=2)# 预测 3x20,答案 = 60dataPrediction = model.predict(np.array([4]))print (int(dataPrediction[0][0]), '<--- 预测的数字')print ('12 <-- 正确答案 \n')
输出:
12 <--- 预测的数字12 <-- 正确答案
回答:
在提问之前请先阅读文档:https://keras.io
对您问题的回答:
在代码行 model.add(Dense(8, input_dim=1, activation=’relu’)) 中,input_dim 参数用于指定输入的形状。当您使用二维特征向量时,input_dim 应为 2。
代码:
import numpy as npfrom keras.models import Sequentialfrom keras.layers import Dense, Activation# 教授网络“表3”trainX = np.array([[1,2], [2,2] ,[3,3.23] ,[4.11,4] , [5,5.11] , [6,6] ,[7,7], [8,8.1], [9,9],[10,10]])trainY = np.array([3, 6, 9, 12, 15, 18, 21, 24, 27, 30])model = Sequential()model.add(Dense(8, input_dim=2, activation='relu'))model.add(Dense(1))model.compile(loss='mean_squared_error', optimizer='adam')model.fit(trainX, trainY, nb_epoch=1200, batch_size=2, verbose=2)# 预测 3x20,答案 = 60dataPrediction = model.predict(np.array([[4.11,4]]))print (dataPrediction, '<--- 预测的数字')print ('12 <-- 正确答案 \n')