毕业论文
项目要做一个车道图像的二值分割,也就是像素点二分类,用模型在测试集上测试,用CPU测试sess.run()的正常结果是binary_seg_image这个变量有0也有1,但用租的3090结果全是0,问Copilt说是浮点运算精度问题(如图),有没有佬遇到这种情况?
用CPU要跑13个小时左右,实在等不起,并且fps才只有2,满足不了实时性... #你们的毕业论文什么进度了# #牛客解忧铺# #毕业论文求指点#
用CPU要跑13个小时左右,实在等不起,并且fps才只有2,满足不了实时性... #你们的毕业论文什么进度了# #牛客解忧铺# #毕业论文求指点#
全部评论
看起来你的问题主要是在GPU上运行模型时,输出结果全是0,而在CPU上运行则正常。这可能是由于GPU和CPU的浮点运算精度不同导致的。你可以尝试以下几种方法来解决这个问题:
1. 检查你的代码,确保在GPU和CPU上运行的代码是完全相同的。
2. 在GPU上运行时,尝试使用更低的浮点精度,例如half或float16。这可以通过在TensorFlow中设置session的配置来实现,例如:
```python
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.5
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
```
3. 尝试使用不同的优化器或学习率,以避免梯度爆炸或消失。
4. 如果以上方法都无法解决问题,你可以尝试使用其他深度学习框架,如PyTorch,看看问题是否依然存在。
至于实时性问题,你可以尝试使用轻量级模型,如MobileNet或ShuffleNet,或者使用模型压缩技术,如知识蒸馏,来减小模型的大小和计算量。同时,你也可以尝试使用更快的推理引擎,如TensorRT或ONNX Runtime,来提高模型的推理速度。
相关推荐
点赞 评论 收藏
分享
09-28 16:19
兰州大学 Java 点赞 评论 收藏
分享