如何启用混合精确训练



我正在尝试在和代码上训练一个深度学习模型所以我想使用GPU的。我有cuda 11.6nvidia GeForce GTX 1650,TensorFlow-gpu = = 2.5.0pip版本21.2.3windows 10。问题是每当我运行这部分代码时,我就会得到这个错误:AMP或APEX (--fp16--bf16)和半精度评估(--fp16_full_eval--bf16_full_eval)的混合精度训练只能在CUDA设备上使用。

from transformers import TrainingArguments
training_args = TrainingArguments(
output_dir=new_output_models_dir,
#output_dir="dev/",
group_by_length=True,
per_device_train_batch_size=16,
gradient_accumulation_steps=2,
#dataloader_num_workers = 1,
dataloader_num_workers = 0,
evaluation_strategy="steps",
num_train_epochs=40,
fp16=True,
save_steps=400,
eval_steps=400,
logging_steps=400,
learning_rate=1e-4,
warmup_steps=500,
save_total_limit=2,
)

我还测试了tensorflow是否可以访问gpu以及tensorflow是否使用tf.config.list_physical_devices(' gpu ')使用cuda gpu支持构建和tf.test.is_built_with_cuda ()并且它们都返回TRUE。如何解决这个问题?为什么会出现这个错误?有什么主意吗?

上述错误提示在非gpu模式下不接受fp16=True/bf16=True。也许Cuda 11.6可能是一个问题,它有稳定性问题。

测试Cuda 11.2和CudNN 8.1。如果这不起作用,您可以使用fp16=False参数。

Ref - https://www.tensorflow.org/install/source#gpu

相关内容

  • 没有找到相关文章

最新更新