>>> from transformers import ConvBertConfig, ConvBertModel
>>> # Initializing a ConvBERT convbert-base-uncased style configuration>>> configuration = ConvBertConfig()
>>> # Initializing a model (with random weights) from the convbert-base-uncased style configuration>>> model = ConvBertModel(configuration)
>>> # Accessing the model configuration>>> configuration = model.config
>>> import torch
>>> from transformers import AutoTokenizer, ConvBertForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("YituTech/conv-bert-base")
>>> model = ConvBertForSequenceClassification.from_pretrained("YituTech/conv-bert-base")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_class_id = logits.argmax().item()
>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`>>> num_labels = len(model.config.id2label)
>>> model = ConvBertForSequenceClassification.from_pretrained("YituTech/conv-bert-base", num_labels=num_labels)
>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
多标签分类示例
>>> import torch
>>> from transformers import AutoTokenizer, ConvBertForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("YituTech/conv-bert-base")
>>> model = ConvBertForSequenceClassification.from_pretrained("YituTech/conv-bert-base", problem_type="multi_label_classification")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_class_ids = torch.arange(0, logits.shape[-1])[torch.sigmoid(logits).squeeze(dim=0) > 0.5]
>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`>>> num_labels = len(model.config.id2label)
>>> model = ConvBertForSequenceClassification.from_pretrained(
... "YituTech/conv-bert-base", num_labels=num_labels, problem_type="multi_label_classification"... )
>>> labels = torch.sum(
... torch.nn.functional.one_hot(predicted_class_ids[None, :].clone(), num_classes=num_labels), dim=1... ).to(torch.float)
>>> loss = model(**inputs, labels=labels).loss
>>> from transformers import AutoTokenizer, ConvBertForMultipleChoice
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("YituTech/conv-bert-base")
>>> model = ConvBertForMultipleChoice.from_pretrained("YituTech/conv-bert-base")
>>> prompt = "In Italy, pizza served in formal settings, such as at a restaurant, is presented unsliced.">>> choice0 = "It is eaten with a fork and a knife.">>> choice1 = "It is eaten while held in the hand.">>> labels = torch.tensor(0).unsqueeze(0) # choice0 is correct (according to Wikipedia ;)), batch size 1>>> encoding = tokenizer([prompt, prompt], [choice0, choice1], return_tensors="pt", padding=True)
>>> outputs = model(**{k: v.unsqueeze(0) for k, v in encoding.items()}, labels=labels) # batch size is 1>>> # the linear classifier still needs to be trained>>> loss = outputs.loss
>>> logits = outputs.logits
>>> from transformers import AutoTokenizer, ConvBertForTokenClassification
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("YituTech/conv-bert-base")
>>> model = ConvBertForTokenClassification.from_pretrained("YituTech/conv-bert-base")
>>> inputs = tokenizer(
... "HuggingFace is a company based in Paris and New York", add_special_tokens=False, return_tensors="pt"... )
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_token_class_ids = logits.argmax(-1)
>>> # Note that tokens are classified rather then input words which means that>>> # there might be more predicted token classes than words.>>> # Multiple token classes might account for the same word>>> predicted_tokens_classes = [model.config.id2label[t.item()] for t in predicted_token_class_ids[0]]
>>> labels = predicted_token_class_ids
>>> loss = model(**inputs, labels=labels).loss
此模型也是 keras.Model 子类。将其用作常规的 TF 2.0 Keras 模型,并参考 TF 2.0 文档以获取有关一般用法和行为的所有事项。
transformers 中的 TensorFlow 模型和层接受两种格式作为输入
将所有输入作为关键字参数(如 PyTorch 模型),或
将所有输入作为第一个位置参数中的列表、元组或字典。
支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。由于这种支持,当使用 model.fit() 等方法时,事情应该对你来说“正常工作”——只需以 model.fit() 支持的任何格式传递你的输入和标签!但是,如果你想在 Keras 方法(如 fit() 和 predict())之外使用第二种格式,例如在使用 Keras Functional API 创建自己的层或模型时,你可以使用三种可能性来收集第一个位置参数中的所有输入张量
此模型也是 keras.Model 子类。将其用作常规的 TF 2.0 Keras 模型,并参考 TF 2.0 文档以获取有关一般用法和行为的所有事项。
transformers 中的 TensorFlow 模型和层接受两种格式作为输入
将所有输入作为关键字参数(如 PyTorch 模型),或
将所有输入作为第一个位置参数中的列表、元组或字典。
支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。由于这种支持,当使用 model.fit() 等方法时,事情应该对你来说“正常工作”——只需以 model.fit() 支持的任何格式传递你的输入和标签!但是,如果你想在 Keras 方法(如 fit() 和 predict())之外使用第二种格式,例如在使用 Keras Functional API 创建自己的层或模型时,你可以使用三种可能性来收集第一个位置参数中的所有输入张量
此模型也是 keras.Model 子类。将其用作常规的 TF 2.0 Keras 模型,并参考 TF 2.0 文档以获取有关一般用法和行为的所有事项。
transformers 中的 TensorFlow 模型和层接受两种格式作为输入
将所有输入作为关键字参数(如 PyTorch 模型),或
将所有输入作为第一个位置参数中的列表、元组或字典。
支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。由于这种支持,当使用 model.fit() 等方法时,事情应该对你来说“正常工作”——只需以 model.fit() 支持的任何格式传递你的输入和标签!但是,如果你想在 Keras 方法(如 fit() 和 predict())之外使用第二种格式,例如在使用 Keras Functional API 创建自己的层或模型时,你可以使用三种可能性来收集第一个位置参数中的所有输入张量
>>> from transformers import AutoTokenizer, TFConvBertForSequenceClassification
>>> import tensorflow as tf
>>> tokenizer = AutoTokenizer.from_pretrained("YituTech/conv-bert-base")
>>> model = TFConvBertForSequenceClassification.from_pretrained("YituTech/conv-bert-base")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="tf")
>>> logits = model(**inputs).logits
>>> predicted_class_id = int(tf.math.argmax(logits, axis=-1)[0])
>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`>>> num_labels = len(model.config.id2label)
>>> model = TFConvBertForSequenceClassification.from_pretrained("YituTech/conv-bert-base", num_labels=num_labels)
>>> labels = tf.constant(1)
>>> loss = model(**inputs, labels=labels).loss
此模型也是 keras.Model 子类。将其用作常规的 TF 2.0 Keras 模型,并参考 TF 2.0 文档以获取有关一般用法和行为的所有事项。
transformers 中的 TensorFlow 模型和层接受两种格式作为输入
将所有输入作为关键字参数(如 PyTorch 模型),或
将所有输入作为第一个位置参数中的列表、元组或字典。
支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。由于这种支持,当使用 model.fit() 等方法时,事情应该对你来说“正常工作”——只需以 model.fit() 支持的任何格式传递你的输入和标签!但是,如果你想在 Keras 方法(如 fit() 和 predict())之外使用第二种格式,例如在使用 Keras Functional API 创建自己的层或模型时,你可以使用三种可能性来收集第一个位置参数中的所有输入张量
>>> from transformers import AutoTokenizer, TFConvBertForMultipleChoice
>>> import tensorflow as tf
>>> tokenizer = AutoTokenizer.from_pretrained("YituTech/conv-bert-base")
>>> model = TFConvBertForMultipleChoice.from_pretrained("YituTech/conv-bert-base")
>>> prompt = "In Italy, pizza served in formal settings, such as at a restaurant, is presented unsliced.">>> choice0 = "It is eaten with a fork and a knife.">>> choice1 = "It is eaten while held in the hand.">>> encoding = tokenizer([prompt, prompt], [choice0, choice1], return_tensors="tf", padding=True)
>>> inputs = {k: tf.expand_dims(v, 0) for k, v in encoding.items()}
>>> outputs = model(inputs) # batch size is 1>>> # the linear classifier still needs to be trained>>> logits = outputs.logits
此模型也是 keras.Model 子类。将其用作常规的 TF 2.0 Keras 模型,并参考 TF 2.0 文档以获取有关一般用法和行为的所有事项。
transformers 中的 TensorFlow 模型和层接受两种格式作为输入
将所有输入作为关键字参数(如 PyTorch 模型),或
将所有输入作为第一个位置参数中的列表、元组或字典。
支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。由于这种支持,当使用 model.fit() 等方法时,事情应该对你来说“正常工作”——只需以 model.fit() 支持的任何格式传递你的输入和标签!但是,如果你想在 Keras 方法(如 fit() 和 predict())之外使用第二种格式,例如在使用 Keras Functional API 创建自己的层或模型时,你可以使用三种可能性来收集第一个位置参数中的所有输入张量
>>> from transformers import AutoTokenizer, TFConvBertForTokenClassification
>>> import tensorflow as tf
>>> tokenizer = AutoTokenizer.from_pretrained("YituTech/conv-bert-base")
>>> model = TFConvBertForTokenClassification.from_pretrained("YituTech/conv-bert-base")
>>> inputs = tokenizer(
... "HuggingFace is a company based in Paris and New York", add_special_tokens=False, return_tensors="tf"... )
>>> logits = model(**inputs).logits
>>> predicted_token_class_ids = tf.math.argmax(logits, axis=-1)
>>> # Note that tokens are classified rather then input words which means that>>> # there might be more predicted token classes than words.>>> # Multiple token classes might account for the same word>>> predicted_tokens_classes = [model.config.id2label[t] for t in predicted_token_class_ids[0].numpy().tolist()]
>>> labels = predicted_token_class_ids
>>> loss = tf.math.reduce_mean(model(**inputs, labels=labels).loss)
此模型也是 keras.Model 子类。将其用作常规的 TF 2.0 Keras 模型,并参考 TF 2.0 文档以获取有关一般用法和行为的所有事项。
transformers 中的 TensorFlow 模型和层接受两种格式作为输入
将所有输入作为关键字参数(如 PyTorch 模型),或
将所有输入作为第一个位置参数中的列表、元组或字典。
支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。由于这种支持,当使用 model.fit() 等方法时,事情应该对你来说“正常工作”——只需以 model.fit() 支持的任何格式传递你的输入和标签!但是,如果你想在 Keras 方法(如 fit() 和 predict())之外使用第二种格式,例如在使用 Keras Functional API 创建自己的层或模型时,你可以使用三种可能性来收集第一个位置参数中的所有输入张量