前提,cuda 11.6,pytorch 1.9.0,python 3.8
torch 没有autocast 这个属性,1.6.0版本以上的pytorch才有,我的版本是1.9.0,因为源代码说的是1.8.0以上都行,我自己试过很多个版本了,也升级过最新的,最新的又显示,我的cuda driver too old ,搞一下午没整出来
解决方法如下:
with torch.autocast(device.type,enabled=use_fp16):
with torch.cuda.amp.autocast(enabled=use_fp16):
我是偶然才发现这个问题的,无语了、、、、、
注意两句话参数不一样,传参的时候别搞错了
https://zhuanlan.zhihu.com/p/165152789
https://zhuanlan.zhihu.com/p/176998729
https://py
torch
.org/docs/stable/amp.html
https://py
torch
.org/docs/stable/notes/amp_examples.html#amp-examples
py
torch
版本
有点旧,更新一下就好了,我直接更新到1.7
import
torch
print(
torch
._
这项来自斯坦福大学、加州大学伯克利分校、加州大学圣迭戈分校和 Meta 的研究提出了一个新颖的序列建模方法,称为测试时训练(Test-Time Training, TTT)层。TTT 层通过用机器学习模型取代 RNN 的隐藏状态,并使用输入 token 的实际梯度下降来压缩上下文。研究表明,这种方法在性能上可以优于现有的 Transformer 和 Mamba 架构。
在环境变量中再把以下两行(v10.0是cuda
版本
号,根据自己下载的
版本
对应填入)行数因为是改后再看的可能有几行的差距。4,还有一个关于RMSprop报错的。train.py第115行。train.py第79行。分别添加进去,就行了。
device=
torch
.device("cuda" if
torch
.cuda.is_available() else "cpu"),
AttributeError
:
module
'
torch
' has no
attribute
'device'
导入
torch
后,通过
torch
.__version__语句查看时出现如标题所示的报错。在导入
torch
的geometric库前,需查看电脑安装的
torch
版本
。解决方法是version前后是2个“_”,添加后即可查看。
解决方法:先通过别的
torch
版本
(后续统称为低
版本
,即2.0之前)去下载 ‘_six.py’ 文件,然后将该文件移植在自己的
torch
包(后续统称为高i
版本
,即2.0之后)中,除此外,还需要在
torch
的初始化文件进行相关配置。2. 在低
版本
中导入
torch
,然后按下ctrl、点击
torch
,在__init__文件夹下,ctrl+f搜索 _six 然后将代码复制下来,同样移植到高
版本
中。
torch
版本
:2.0(可以通过
torch
.__version__)去检查一下自己的
torch
版本
)
这是因为
torch
1.8.1是最新版很多接口发生了变化下载旧
版本
可以解决这个
问题
。
pip install
torch
==1.1.0
torch
vision==0.3.0 -f
由于最近的程序对速度要求比较高,想要快速出结果,因此特地学习了一下混合精度运算和并行化操作,由于已经有很多的文章介绍相关的原理,因此本篇只讲述如何应用
torch
实现混合精度运算、数据并行和分布式运算,不具体介绍原理。
自动混合精度训练(auto Mixed Precision,AMP)可以大幅度降低训练的成本并提高训练的速度。在此之前,自动混合精度运算是使用NVIDIA开发的Apex工具。从Py
Torch
1.6.0开始,Py
Torch
已经自带了AMP模块,因此接下来主要对Py
Torch
自带的a