python速度慢的一种间接解决方法

大家都知道,Python运行速度很慢,特别是在进行for循环的时候,这个劣势就更加明显了。为了解决这个问题,我们不得不来一个曲线救国的策略。

numpy,pytorch,这几个框架都是利用c写的,所以这几个框架运行速度很快。所以,我们可以利用这两个框架来间接的解决python速度慢的问题。我就直接拿我做的项目来说吧。

在我的一个项目中,我要处理图像,需要对每个像素点进行处理,所以最开始的想法就是来一个三次for循环,但是,最后是目的达到了,但是处理一张图像的速度在10s左右,难以接受,最终想到了解决方案,利用pytorch里面的gather函数来进行解决,torch.gather这个函数很有用,大家在处理图像的时候,如果速度慢,均可以考虑这个函数来处理,如果能处理,运行速度会非常快。

还有一个就是,我要将图片中[0,0,0]的像素改变为[0,255,0]这种,如果用for循环来处理,一样的,速度非常慢,但是如果用gather函数来处理,也无法处理,我最后再来一个折中方案,如下:

sum_image = torch.sum(torch.tensor(image), dim=2)
image0[sum_image == 0] = [0, 255, 0]

通过这种方式,解决了速度慢的问题。漂亮!

总之,为了解决python速度慢的问题,可以多多利用numpy和pytorch里面的接口。

2020.8.31

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值