我已经使用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))
有什么想法我做错了吗?
谢谢!