刚开始在Anaconda搞环境的时候没注意到这三者之间的对应关系,点进去CUDA Toolkit的安装官网:
CUDA Toolkit 12.1 Downloads | NVIDIA DeveloperResources CUDA Documentation/Release NotesMacOS Tools Training Sample Code Forums Archive of Previous CUDA Releases FAQ Open Source PackagesSubmit a BugTarball and Zip Archive Deliverableshttps://developer.nvidia.com/cuda-downloads就直接下载安装了最新版本的CUDA Toolkit12.1.66,回过神来后,发现CUDA(CUDA Toolkit)、显卡算力、PyTorch三者之间有一定的匹配关系。
目录
官网给出了每一款显卡的算力:
https://developer.nvidia.com/zh-cn/cuda-gpus
https://developer.nvidia.com/zh-cn/cuda-gpus


对应什么产品什么型号就自行选择即可。3070和3070Ti都是8.6的算力。
那么CUDA Toolkit12.1.66的需要的驱动版本范围应该在对应的版本的说明文档里标明,如12.1版本的说明在网站https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#notices中标出:(我用的是Windows系统)
按start+R,输入cmd,打开windows命令行,输入命令nvidia-smi:

还好,我的显卡满足cudatoolkit12.1.66的要求。
若不知道如何在Anaconda的环境中安装PyTorch,请看:Anaconda+PyCharm+PyTorch+Gym深度强化学习环境搭建 送新手直接送进炼丹炉_pycharm安装gym库_在屏幕前出油的博客-CSDN博客Anaconda+PyCharm+PyTorch+Gym强化学习环境搭建流程,新手强化学习炼丹炉入口。https://blog.csdn.net/qq_43674552/article/details/127343863?spm=1001.2014.3001.5502那么现在来看PyTorch了,目前官网最高支持的是CUDA版本是11.8,有些滞后,和我的CUDA12.1.66版本是不匹配的。但之前我在Anaconda环境中安装的也是CUDA版本为11.8的PyTorch(版本如下图):

所以,由于PyTorch给出的CUDA的版本有些滞后,就需要验证一下支持CUDA11.8的PyTorch是否和CUDA12.1.66是兼容的,于是我在这个PyTorch官网安装页往下翻了翻:

也没说什么特别的,就是说conda和CUDA要适配你的机器,并且在你的可选范围内,选择CUDA版本越高的PyTorch越好。
接着官网给了安装成功的认证过程:

翻译过来就是说,以下步骤可以帮你认证你的PyTorch是否安装成功,并且你的CUDA是否能为PyTorch所用。
用PyCharm新建一个空项目,环境配置选择安装了PyTorch(CUDA version = 11.8)的那个环境,按照上图官网文档给出的命令验证一下即可:
import torch
x = torch.rand(5, 3)
print(x)
#如果你的输出是类似于官网给出的那个tensor的样子,说明torch可用
torch.cuda.is_available()
#若返回True则说明CUDA可用

我输出了一个和官网给出的相似的结果(绿框里的那个tensor),并告诉我我的CUDA可以使用,但不知道跑模型的时候会不会提示什么不兼容的错误(应该不会,到时候再说)。
哦对了,CUDA官网还说CUDA是向下兼容的,所以我觉得高版本CUDA会兼容支持低版本CUDA的PyTorch。但如果选择保守一点,就严格按照对应的版本安装使用即可。
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
在我的应用程序中,我需要能够找到所有数字子字符串,然后扫描每个子字符串,找到第一个匹配范围(例如5到15之间)的子字符串,并将该实例替换为另一个字符串“X”。我的测试字符串s="1foo100bar10gee1"我的初始模式是1个或多个数字的任何字符串,例如,re=Regexp.new(/\d+/)matches=s.scan(re)给出["1","100","10","1"]如果我想用“X”替换第N个匹配项,并且只替换第N个匹配项,我该怎么做?例如,如果我想替换第三个匹配项“10”(匹配项[2]),我不能只说s[matches[2]]="X"因为它做了两次替换“1fooX0barXg
如何匹配未被反斜杠转义的平衡定界符对(其本身未被反斜杠转义)(无需考虑嵌套)?例如对于反引号,我试过了,但是转义的反引号没有像转义那样工作。regex=/(?!$1:"how\\"#expected"how\\`are"上面的正则表达式不考虑由反斜杠转义并位于反引号前面的反斜杠,但我愿意考虑。StackOverflow如何做到这一点?这样做的目的并不复杂。我有文档文本,其中包括内联代码的反引号,就像StackOverflow一样,我想在HTML文件中显示它,内联代码用一些spanMaterial装饰。不会有嵌套,但转义反引号或转义反斜杠可能出现在任何地方。
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这
在Cooper的书BeginningRuby中,第166页有一个我无法重现的示例。classSongincludeComparableattr_accessor:lengthdef(other)@lengthother.lengthenddefinitialize(song_name,length)@song_name=song_name@length=lengthendenda=Song.new('Rockaroundtheclock',143)b=Song.new('BohemianRhapsody',544)c=Song.new('MinuteWaltz',60)a.betwee
我有一个驼峰式字符串,例如:JustAString。我想按照以下规则形成长度为4的字符串:抓取所有大写字母;如果超过4个大写字母,只保留前4个;如果少于4个大写字母,则将最后大写字母后的字母大写并添加字母,直到长度变为4。以下是可能发生的3种情况:ThisIsMyString将产生TIMS(大写字母);ThisIsOneVeryLongString将产生TIOV(前4个大写字母);MyString将生成MSTR(大写字母+tr大写)。我设法用这个片段解决了前两种情况:str.scan(/[A-Z]/).first(4).join但是,我不太确定如何最好地修改上面的代码片段以处理最后一种
我正在检查一个Rails项目。在ERubyHTML模板页面上,我看到了这样几行:我不明白为什么不这样写:在这种情况下,||=和ifnil?有什么区别? 最佳答案 在这种特殊情况下没有区别,但可能是出于习惯。每当我看到nil?被使用时,它几乎总是使用不当。在Ruby中,很少有东西在逻辑上是假的,只有文字false和nil是。这意味着像if(!x.nil?)这样的代码几乎总是更好地表示为if(x)除非期望x可能是文字false。我会将其切换为||=false,因为它具有相同的结果,但这在很大程度上取决于偏好。唯一的缺点是赋值会在每次运行
如果我使用ruby版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el