记录python+pytorch坑坑坑

背景:陈年python3.6,不想更新python版本。需要用torch。

1. 我在Start Locally | PyTorch 上下载了pytorch最新版本,但是下载太慢了,我放弃了pip3 install torch ...

2. 下载了别的版本的torch,然后提示pip版本低。于是我upgrade了pip

3. 安装了pip-21.3.1. 

4.然后pip命令用不了了。。。报错:

...
File "/opt/conda/lib/python3.6/site-packages/typing_extensions.py", line 159, in <module>
    class _FinalForm(typing._SpecialForm, _root=True):
AttributeError: module 'typing' has no attribute '_SpecialForm'

原因是什么?

有网友说代码有误,我觉得就是版本不匹配的问题。

那么如何解决呢?

方案一:

按照 目录找到typing_extensions.py 的159行, typing既然没有这个属性,把这个属性删掉。

使用pip后出现新的错误:需要两个参数,但是只传了一个。

方案二:

在网上重新下载typing_extensions.py替换源文件。 

我试了也不行。

方案三:

AttributeError: module 'typing' has no attribute '_SpecialForm' - Amazon SageMaker - Hugging Face Forums

给出了解决方案:

transformers_version = '4.17',            # the transformers version used in the training job
    pytorch_version      = '1.10',            # the pytorch_version version used in the training job
    py_version           = 'py38',            # the python version used in the training job

em...我就是不想升py38,解决不了我的问题。

5. 于是我想降版本。。

网上找到了强制降低版本的命令。。

Python:升级、降级、强制重新安装pip版本_玩转测试开发的博客-CSDN博客_pip 强制安装

python -m -pip install --upgrade pip  #升级pip,但可能会报错: 'NoneType' object has no attribute 'bytes'。
#强制执行
python -m pip install -U --force-reinstall pip

6. 对我来说根本不管用,但凡用pip就报 typing_extensions.py里的错。。

于是我下载了pip-19.3.1, 安装后能正常使用pip了。。 Links for pip

7. 本来想妥协用anaconda +jupyter + pytorch。但是我半天没下载下来。。。

Pytorch环境搭建_D之光的博客-CSDN博客_pytorch环境搭建8

8. 我就好奇,为什么不python不直接给出 各个对应的版本是什么。。。原来有这个东西。

pytorch,torchvision,python 三者的对应关系来源于 pytorch 官方 github,链接:GitHub - pytorch/vision: Datasets, Transforms and Models specific to Computer Vision

9. 我下载了torch-1.6.0+cpu-cp36-cp36m-win_amd64.whl, torchvision-0.7.0+cpu-cp36-cp36m-win_amd64.whl, from https://download.pytorch.org/whl/torch_stable.html

测试是否安装成功:

python import torch

如果没报错,就安装好了。

10.如有还有坑我再续上。。。

希望不要再更新这个篇。。。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PythonPyTorch是两个不同的东西。Python是一种高级编程语言,而PyTorch是一个基于Python的机器学习框架。PyTorch提供了丰富的工具和函数,用于构建和训练神经网络模型。 在引用\[1\]中的代码示例中,展示了一个简单的训练过程。首先,创建了一个模型对象,并生成了一个随机的向量和标签。然后,定义了一个损失函数和一个优化器。最后,使用优化器对模型进行训练。 在引用\[2\]中的代码示例中,展示了一个模型的前向传播过程。首先,定义了一个输入向量和一个嵌入层。然后,使用嵌入层将输入向量转换为嵌入向量。接下来,使用torch.einsum函数计算输出。最后,返回输出。 在引用\[3\]中的代码示例中,展示了一些与排序和填充相关的操作。首先,定义了一个张量a和一个长度向量lengths。然后,使用torch.sort函数对lengths进行排序,并获取排序后的长度和索引。接下来,根据索引对张量a进行排序。然后,定义了一个嵌入层和一个LSTM层,并将张量a输入到嵌入层中。接下来,使用pack_padded_sequence函数对输入进行填充。然后,使用LSTM层对填充后的输入进行处理。最后,使用pad_packed_sequence函数对输出进行填充,并根据索引对输出进行排序。 总之,Python是一种编程语言,而PyTorch是一个用于机器学习的框架。在PyTorch中,可以使用Python编写代码来构建和训练神经网络模型,并进行各种操作,如排序和填充。 #### 引用[.reference_title] - *1* *2* *3* [python+pytorch学习点滴记录](https://blog.csdn.net/benben044/article/details/123881062)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值