我有一个函数,可以从 Huggingface 加载预训练模型并对其进行微调以进行情感分析,然后计算 F1 分数并返回结果。问题是,当我使用完全相同的参数多次调用此函数时,它将给出与预期完全相同的度量分数,除了第一次不同之外,这怎么可能?
这是我的函数,是根据huggingface中的本教程编写的:
import uuid
import numpy as np
from datasets import (
load_dataset,
load_metric,
DatasetDict,
concatenate_datasets
)
from transformers import (
AutoTokenizer,
AutoModelForSequenceClassification,
DataCollatorWithPadding,
TrainingArguments,
Trainer,
)
CHECKPOINT = "distilbert-base-uncased"
SAVING_FOLDER = "sst2"
def custom_train(datasets, checkpoint=CHECKPOINT, saving_folder=SAVING_FOLDER):
model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=2)
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
def tokenize_function(example):
return tokenizer(example["sentence"], truncation=True)
tokenized_datasets = datasets.map(tokenize_function, batched=True)
data_collator = DataCollatorWithPadding(tokenizer=tokenizer)
saving_folder = f"{SAVING_FOLDER}_{str(uuid.uuid1())}"
training_args = TrainingArguments(saving_folder)
trainer = Trainer(
model,
training_args,
train_dataset=tokenized_datasets["train"],
eval_dataset=tokenized_datasets["validation"],
data_collator=data_collator,
tokenizer=tokenizer,
)
trainer.train()
predictions = …Run Code Online (Sandbox Code Playgroud) python nlp machine-learning deep-learning huggingface-transformers
在使用 scikit-learn 时,我可以使用 PyTorch 张量代替 NumPy 数组吗?
我尝试了 scikit-learn 中的一些方法,例如train_test_split和StandardScalar,它似乎工作得很好,但是当我使用 PyTorch 张量而不是 NumPy 数组时,有什么我应该知道的吗?
numpy 数组或 scipy 稀疏矩阵。其他可转换为数值数组的类型(例如 pandas DataFrame)也是可接受的。
这是否意味着使用 PyTorch 张量是完全安全的?