percent4 / keras_bert_text_classification

本项目采用Keras和Keras-bert实现文本多分类任务,对BERT进行微调。
46 stars 9 forks source link

ValueError: Layer "model_2" expects 2 input(s), but it received 1 input tensors. Inputs received: [<tf.Tensor 'IteratorGetNext:0' shape=(None, 1, 300) dtype=int64>] #5

Closed AllennLiu closed 3 months ago

AllennLiu commented 3 months ago

大佬求解,訓練都是正常的,但 model.predict() 卻報了:

Traceback (most recent call last):
  File "/usr/src/keras_bert/predict.py", line 30, in <module>
    predicted = model.predict([[X1], [X2]])
  File "/usr/local/lib/python3.9/site-packages/keras/src/utils/traceback_utils.py", line 70, in error_handler
    raise e.with_traceback(filtered_tb) from None
  File "/tmp/__autograph_generated_filem7k2yqas.py", line 15, in tf__predict_function
    retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope)
ValueError: in user code:

    File "/usr/local/lib/python3.9/site-packages/keras/src/engine/training.py", line 2416, in predict_function  *
        return step_function(self, iterator)
    File "/usr/local/lib/python3.9/site-packages/keras/src/engine/training.py", line 2401, in step_function  **
        outputs = model.distribute_strategy.run(run_step, args=(data,))
    File "/usr/local/lib/python3.9/site-packages/keras/src/engine/training.py", line 2389, in run_step  **
        outputs = model.predict_step(data)
    File "/usr/local/lib/python3.9/site-packages/keras/src/engine/training.py", line 2357, in predict_step
        return self(x, training=False)
    File "/usr/local/lib/python3.9/site-packages/keras/src/utils/traceback_utils.py", line 70, in error_handler
        raise e.with_traceback(filtered_tb) from None
    File "/usr/local/lib/python3.9/site-packages/keras/src/engine/input_spec.py", line 219, in assert_input_compatibility
        raise ValueError(

    ValueError: Layer "model_2" expects 2 input(s), but it received 1 input tensors. Inputs received: [<tf.Tensor 'IteratorGetNext:0' shape=(None, 1, 300) dtype=int64>]

目前還找不到方法解決><

AllennLiu commented 3 months ago

Already figure it out:

model.predict([ np.array([ indices ]), np.array([ segments ]) ])