我还在学习神经网络和坦率的python。这是我在keras训练的基本NN:
from keras.models import Sequential
from keras.layers import Dense
import numpy
# fix random seed for reproducibility
numpy.random.seed(7)
# load pima indians dataset
dataset = numpy.loadtxt("Final_Data.csv", delimiter=",")
# split into input (X) and output (Y) variables
X = dataset[:,0:4]
Y = dataset[:,4]
# create model
model = Sequential()
model.add(Dense(3, input_dim=4, activation='sigmoid'))
model.add(Dense(1, activation='sigmoid'))
# Compile model
model.compile(loss='mean_squared_error', optimizer='sgd', metrics=['accuracy'])
# Fit the model
model.fit(X, Y, epochs=100, batch_size=400)
# evaluate the model
scores = model.evaluate(X, Y)
print("\n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
如果我现在要提供自己的4个输入来查看神经网络的输出,命令会是什么样子?我认为这是model.predict命令,但当我在括号内给它4个输入时:
model.predict(0.72804878,0.784146341,0.792682927,0.801219512)
我回来了:
TypeError: predict() takes at most 4 arguments (5 given)
现在我猜我完全使用了预测命令错误,有什么建议吗?
答案 0 :(得分:4)
来自keras的文档:
预测(self,x,batch_size = 32,verbose = 0)
这就是predict
期待4个参数的原因。
x
参数是您需要正确指定的参数。
在您的情况下,x
需要是一个形状(1,4)的numpy数组,即示例数和每个示例的大小(特征向量大小)。
试试这个:
x = np.array([[0.72804878,0.784146341,0.792682927,0.801219512]])
model.predict(x)