Jupyter Notebook


ValueError                                Traceback (most recent call last)
C:\temp\ipykernel_27132\3989213042.py in 
      6 # training set.
      7 with tf.device("/CPU:0"):
----> 8     text_vectorizer.adapt(train_dataset.map(lambda text, label: text))
      9 
     10 train_dataset = train_dataset.map(

D:\ANACOND\lib\site-packages\keras\layers\preprocessing\text_vectorization.py in adapt(self, data, batch_size, steps)
    470               argument is not supported with array inputs.
    471         """
--> 472         super().adapt(data, batch_size=batch_size, steps=steps)
    473 
    474     def update_state(self, data):

D:\ANACOND\lib\site-packages\keras\engine\base_preprocessing_layer.py in adapt(self, data, batch_size, steps)
    256             with data_handler.catch_stop_iteration():
    257                 for _ in data_handler.steps():
--> 258                     self._adapt_function(iterator)
    259                     if data_handler.should_sync:
    260                         context.async_wait()

D:\ANACOND\lib\site-packages\tensorflow\python\util\traceback_utils.py in error_handler(*args, **kwargs)
    151     except Exception as e:
    152       filtered_tb = _process_traceback_frames(e.__traceback__)
--> 153       raise e.with_traceback(filtered_tb) from None
    154     finally:
    155       del filtered_tb

D:\ANACOND\lib\site-packages\keras\engine\base_preprocessing_layer.py in tf__adapt_step(iterator)
      9                 data = ag__.converted_call(ag__.ld(next), (ag__.ld(iterator),), None, fscope)
     10                 ag__.converted_call(ag__.ld(self)._adapt_maybe_build, (ag__.ld(data),), None, fscope)
---> 11                 ag__.converted_call(ag__.ld(self).update_state, (ag__.ld(data),), None, fscope)
     12         return tf__adapt_step
     13     return inner_factory

D:\ANACOND\lib\site-packages\keras\layers\preprocessing\text_vectorization.py in update_state(self, data)
    473 
    474     def update_state(self, data):
--> 475         self._lookup_layer.update_state(self._preprocess(data))
    476 
    477     def finalize_state(self):

D:\ANACOND\lib\site-packages\keras\layers\preprocessing\text_vectorization.py in _preprocess(self, inputs)
    568             if inputs.shape.rank > 1:
    569                 if inputs.shape[-1] != 1:
--> 570                     raise ValueError(
    571                         "When using `TextVectorization` to tokenize strings, "
    572                         "the input rank must be 1 or the last shape dimension "

ValueError: in user code:

    File "D:\ANACOND\lib\site-packages\keras\engine\base_preprocessing_layer.py", line 123, in adapt_step  *
        self.update_state(data)
    File "D:\ANACOND\lib\site-packages\keras\layers\preprocessing\text_vectorization.py", line 475, in update_state  **
        self._lookup_layer.update_state(self._preprocess(data))
    File "D:\ANACOND\lib\site-packages\keras\layers\preprocessing\text_vectorization.py", line 570, in _preprocess
        raise ValueError(

    ValueError: When using `TextVectorization` to tokenize strings, the input rank must be 1 or the last shape dimension must be 1. Received: inputs.shape=(None, 39) with rank=2

望采纳!!!点击回答右侧采纳即可!!
上面这个错误是因为使用了TextVectorization层来对文本进行tokenization,但是输入数据的维度不符合要求。TextVectorization层需要输入数据是一个一维数组或者二维数组,但是最后一维的维度必须为1。错误提示中提到了inputs.shape=(None, 39),说明输入的是一个二维数组,但是最后一维的维度为39,不符合要求。请检查输入数据的维度是否符合要求,并做出相应的修改。