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,不符合要求。请检查输入数据的维度是否符合要求,并做出相应的修改。