使用GPU时,Tensorflow Loss函数为NAN



我正在尝试使用Tensorflow1 model ZOO中预先训练的模型来训练自定义对象检测模型。

我使用的是型号ssd_mobilenet_v2_coco_2018_03_29

我根据本教程创建了合适的培训环境:https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/tensorflow-1.14/training.html

问题是,当我试图使用tensorflow gpu==1.14.0训练模型时,我总是得到一个错误,说Model diverged with loss = NaN.

然后我尝试卸载tensorflow-gpu==1.14.0并安装tensorflow==1.14.0(所以它没有使用我的GPU(,突然它开始工作了

我不知道这怎么可能。。。

我正在使用的命令-

python model_main.py --alsologtostderr --model_dir=modelsssd_mobilenet_v2_coco_2018_03_29export --pipeline_config_path=modelsssd_mobilenet_v2_coco_2018_03_29pipeline.config --num_train_steps=2000

Python版本为3.7

操作系统是Windows 10

我的显卡是Nvidia GeForce RTX3050,我使用了CUDA v10.0cuDNN v7.4.1

有什么想法吗?

这是因为RTX30不支持cuda 10。如果你需要tf v1(1.15(,你可以安装nvidia的tensorflow(1.15(可以在cuda 11上运行。

pip install nvidia-pyindex

pip install nvidia-tensorflow[horovod]

注意:仅支持Python 3.6或3.8〔不支持3.7〕

https://developer.nvidia.com/blog/accelerating-tensorflow-on-a100-gpus/

最新更新