我在使用Keras(搭配Python 3.6)预测数组(x_test)的输出时,遇到了TypeError错误。
这是我的预测代码:
x_test = [[8],[6],[0],[2],[0],[0],[0],[0],[112.128],[0],[0],[2],[0],[1],[1],[2],[2]]prediction = model.predict(model, x_test, batch_size = 32, verbose = 1)
这是我得到的错误信息:
TypeError Traceback (most recent call last)<ipython-input-14-286495dc15a7> in <module>() 1 x_test = [[8],[6],[0],[2],[0],[0],[0],[0],[112.128],[0],[0],[2],[0],[1],[1],[2],[2]] 2 ----> 3 prediction = model.predict(model, x_test, batch_size =(17,1), verbose = 1)TypeError: predict() got multiple values for argument 'batch_size'
如果有人知道问题出在哪里,任何建议都会非常感激。
供参考,这是我的神经网络,看起来运行正常。
model = Sequential()model.add(Dense(32, input_dim=17, init='uniform', activation='relu' ))model.add(Dense(64, init='uniform', activation='relu'))model.add(Dense(128, init='uniform', activation='relu'))model.add(Dense(64, init='uniform', activation='sigmoid'))model.add(Dense(32, init='uniform', activation='sigmoid'))model.add(Dense(16, init='uniform', activation='sigmoid'))model.add(Dense(8, init='uniform', activation='sigmoid'))model.add(Dense(4, init='uniform', activation='sigmoid'))model.add(Dense(1, init='uniform', activation='sigmoid'))# Compile modelmodel.compile(loss='mean_squared_logarithmic_error', optimizer='SGD', metrics=['accuracy'])# Fit modelhistory = model.fit(X, Y, nb_epoch=300, validation_split=0.2, batch_size=3)
非常感谢!
回答:
在model.predict
中不需要传递model
参数,因为predict
的默认参数是predict(self, x, batch_size=32, verbose=0)
,其中model
由self
自动定义。
所以你的代码应该改成这样:
prediction = model.predict(x_test, batch_size = 32, verbose = 1)
根据文档,x
应该是一个numpy.array
而不是list
。
参数:
x:作为Numpy数组的输入数据。
batch_size:整数。
verbose:详细模式,0或1。
这意味着x_test
应该改为:
x_test = np.array([[8],[6],[0],[2],[0],[0],[0],[0],[112.128],[0],[0],[2],[0],[1],[1],[2],[2]])