我正在尝试在和代码上训练一个深度学习模型所以我想使用GPU的。我有cuda 11.6,nvidia GeForce GTX 1650,TensorFlow-gpu = = 2.5.0和pip版本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