Keras:难以使用tf.data.Dataset进行数据预测

时间:2018-10-31 00:15:39

标签: python tensorflow keras

我已经使用tf.data.Dataset API训练了Keras模型。所以我有这样的东西:

dataset = tf.data.Dataset.from_tensor_slices((x, y))
dataset = dataset.map(lambda x, y: ({'reviews': x}, y))
dataset = dataset.map(preprocess)
sess = tf.Session()
sess.run(tf.tables_initializer())
tf.keras.backend.set_session(sess)
dataset = dataset.batch(50).repeat()

然后我做

model.fit(dataset, steps_per_epoch=100, epochs=20)

一切正常。

但是,我然后尝试通过以下测试在测试tf.data.Dataset上评估我的模型:

dataset = dataset.map(preprocess)
x = dataset.map(lambda x, y: x["reviews"])
y = dataset.map(lambda x, y: y)
preds = model.predict(x)

,它在出现此错误的预测之前失败:

TypeError: cannot concatenate 'str' and 'int' objects

此通话:

x = dataset.map(lambda x, y: x["reviews"])

我不确定自己做错了什么;当我检查dataset时,看到的元素看起来像我期望的样子:

(array([30000,    28,  4417,    39,    77,    87,    52, 30000, 30000,
          28,   955,    55, 30000,   707, 30000,   164,   295,   755,
         183, 30000, 30000,    15,  1322, 30000, 30000,   102,    23,
         755,   527,    52,   803,   804,  1125, 30000, 30000,    65,
       30000,    21, 30000,   111,   127,   743,    23, 30000, 30000,
        3337,    77,  2125,     5,   111,   220,   383,   102,    23,
       30000,   527,   408,     5, 30000, 30000,   856,  1487,    28,
          39,    14,    87,    52,    42,    31, 30000, 30000, 30000,
       30000,    95,   153,    14,    87,   547,    12,   940, 30000,
       30000,    15,   620,  1109,    55,    14,    87,    93,   408,
          52, 30000, 30000, 30000,  1066,     6, 30000, 30000,    95,
         153], dtype=int32), array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.,
       0., 0., 0.], dtype=float32))

有什么想法我做错了吗?

谢谢!

0 个答案:

没有答案