问题描述
今天和前几次的环境不太一样,python3.6,并基于此安装相应的torch和torchversion包。
之所以这样是因为这个项目比较早了,所以报错了这个内容:RuntimeError: "nll_loss_forward_reduce_cuda_kernel_2d_index" not implemented for 'Float',而且在经历多方查找并没有找到相应的解决办法,不过有一个类似的RuntimeError: "nll_loss_forward_reduce_cuda_kernel_2d_index" not implemented for 'Int',显然这是不一样的,对于loss_forward来说,传播本身就是float,所以报int错很正常,但是报float错实在让人理解不了,在尝试过将其改为int和long之后还是没能解决,于是想到了换个环境的想法。运行时候报了这个错误:RuntimeError: "nll_loss_forward_reduce_cuda_kernel_2d_index" not implemented for 'Float'。
原因分析和解决
原因:requests包引入了urllib3,而新版本的urllib3 需要OpenSSL 1.1.1+以上版本,否则报错:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+,currently the ‘ssl’ module is compiled with ‘OpenSSL 1.0.2k-fips 26 Jan 2017’. See: https://github.com/urllib3/urllib3/issues/2168,而且去官网查看的时候,发现对于1.1.1之前的版本已经不再支持了,所以需要安装新的版本用于支持。
解决办法也很简单
Terminal窗口执行:pip install urllib3==1.26.15
安装完之后就可以运行成功啦。
扩展阅读
其他解决办法
urllib3的基本用法
Urllib3是一个功能强大,友好的,用于HTTP客户端的Python库。其官方文档链接为:https://pypi.org/project/urllib3/https://link.zhihu.com/?target=https%3A//pypi.org/project/urllib3/
许多Python的原生系统已经开始使用urllib3。同时,提供了很多python标准库urllib里所没有的重要特性:
1. 线程安全
2. 连接池
3. 客户端SSL/TLS验证
4. 文件分部编码上传
5. 协助处理重复请求和HTTP重定位
6. 支持压缩编码
7. 支持HTTP和SOCKS代理
完结撒花
关于这部分的内容还是蛮多的,持续关注,持续学习吧~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)