Ошибка ValueError при вызове «fit» в преобразователе BERT в Tensorflow 2.1 - PullRequest
0 голосов
/ 07 марта 2020

Рассмотрим следующий код, взятый из здесь :

import tensorflow
import transformers
import tensorflow_datasets
from tensorflow.keras import callbacks, losses, metrics, optimizers

data = tensorflow_datasets.load("glue/mrpc")
train_dataset = data["train"]
validation_dataset = data["validation"]

bert_model = transformers.TFBertModel.from_pretrained("bert-base-cased")
bert_tokenizer = transformers.BertTokenizer.from_pretrained("bert-base-cased")

tensorboard_callback = callbacks.TensorBoard(write_images=True, embeddings_freq=1)
bert_model.compile(optimizer=optimizers.Adam(learning_rate=0.01), loss=losses.SparseCategoricalCrossentropy(from_logits=True), metrics=[metrics.SparseCategoricalAccuracy("accuracy")])
bert_history = bert_model.fit(train_dataset, epochs=10, validation_data=(validation_dataset), callbacks=[tensorboard_callback])

Когда я его запускаю, выдается следующая ошибка:

ValueError: in converted code:

    C:\tools\miniconda3\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py:677 map_fn
        batch_size=None)
    C:\tools\miniconda3\lib\site-packages\tensorflow_core\python\keras\engine\training.py:2469 _standardize_tensors
        exception_prefix='target')
    C:\tools\miniconda3\lib\site-packages\tensorflow_core\python\keras\engine\training_utils.py:539 standardize_input_data
        str(data)[:200] + '...')

    ValueError: Error when checking model target: the list of Numpy arrays that you are passing to your model is not the size the model expected. Expected to see 2 array(s), for inputs ['output_1', 'output_2'] but instead got the following list of 1 arrays: [<tf.Tensor 'args_3:0' shape=() dtype=int64>]...

И я не не понимаю, потому что это должно работать. Есть предложения?

...