Keras:带有batch_size的TypeError

时间:2017-03-28 00:31:51

标签: python machine-learning neural-network deep-learning keras

我正在使用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 model
model.compile(loss='mean_squared_logarithmic_error', optimizer='SGD', metrics=['accuracy'])

# Fit model
history = model.fit(X, Y, nb_epoch=300, validation_split=0.2, batch_size=3)

非常感谢!

2 个答案:

答案 0 :(得分:4)

您不需要在model中传递model.predict参数,因为预测的默认值为predict(self, x, batch_size=32, verbose=0) model由{{1}自动定义}}。

所以你的代码应该就像:

self

根据文档,prediction = model.predict(x_test, batch_size = 32, verbose = 1) 应该是x而不是numpy.array

  

参数:

     

x:输入数据,作为Numpy数组。

     

batch_size:整数。

     

详细:详细模式,0或1。

这意味着list应改为:

x_test

答案 1 :(得分:0)

prediction = model.predict(x_test, batch_size = 32, verbose = 1)