我有一个大小为 4107 的火车数据集。
DatasetDict({
train: Dataset({
features: ['input_ids'],
num_rows: 4107
})
valid: Dataset({
features: ['input_ids'],
num_rows: 498
})
})
Run Code Online (Sandbox Code Playgroud)
在我的训练参数中,批量大小为 8,纪元数为 2。
from transformers import Trainer, TrainingArguments
args = TrainingArguments(
output_dir="code_gen_epoch",
per_device_train_batch_size=8,
per_device_eval_batch_size=8,
evaluation_strategy="epoch",
save_strategy="epoch",
eval_steps=100,
logging_steps=100,
gradient_accumulation_steps=8,
num_train_epochs=2,
weight_decay=0.1,
warmup_steps=1_000,
lr_scheduler_type="cosine",
learning_rate=3.0e-4,
# save_steps=200,
# fp16=True,
load_best_model_at_end = True,
)
trainer = Trainer(
model=model,
tokenizer=tokenizer,
args=args,
data_collator=data_collator,
train_dataset=tokenized_datasets["train"],
eval_dataset=tokenized_datasets["valid"],
)
Run Code Online (Sandbox Code Playgroud)
当我开始训练时,我可以看到步数是128。
我的假设是 1 epoch 的步数应该是 4107/8 = 512(大约)。2 个纪元 512+512 = 1024。
不明白怎么变成128了
我了解到这是像素的随机性。但是,请帮助您以数学方式计算这种随机性。以及不同的图像如何具有不同的熵。