安装pytorch3d最简单方法

Posted LuH1124

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安装pytorch3d最简单方法相关的知识,希望对你有一定的参考价值。

安装pytorch3d的最简单方法


前言

安装pytorch3d踩了很多坑,现将最简单的方法公布如下:


一、pytorch3d是什么?

PyTorch3D的目标是帮助加速深度学习和3D交叉点的研究。3D数据比2D图像更复杂,在从事Mesh R-CNN和C3DPO等项目时,我们遇到了一些挑战,包括3D数据表示、批处理和速度。我们开发了许多有用的算子和抽象,用于3D深度学习,并希望与社区分享,以推动这一领域的新研究。
在PyTorch3D中,我们包含了高效的3D操作符、异构批处理功能和模块化可微渲染API,为该领域的研究人员提供了急需的工具包,以实现复杂3D输入的前沿研究。

来自:https://pytorch3d.org/docs/why_pytorch3d

二、安装步骤

1.添加anaconda源(最最最最最关键!!)

以清华源 ubuntu18.04为例,其他平台安装方法可以借鉴:

# 在终端执行以下代码
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
# 以上两条是Anaconda官方库的镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
# 以上是Anaconda第三方库 Conda Forge的镜像

# for linux
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
# for legacy win-64
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/
#以上两条是Pytorch的Anaconda第三方镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch3d/

conda config --set show_channel_urls yes

添加完成后可以使用conda info命令查看是否添加成功
!!!添加pytorch源和pytorch3d源是最关键的步骤!!!

2.创建环境

以python3.8为例,这个看实际需求。

conda create -n pytorch3d python=3.8
conda activate pytorch3d

3.安装pytorch和pytorch3d

截止本文的编写时间,当前最版本pytorch3d为0.6.2,最高支持pytorch1.11.0,所以最好不要安装pytorch 1.12.0 以上版本;以pytorch 1.10.1版本为例,对了我的nvcc -v cuda版本是11.3,安装pytorch需要适配:


# 首先安装pytorch
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3
# 使用官方网站提供的命令安装,参考:https://pytorch.org/get-started/previous-versions/
# 但是尤其注意以因为已经更换过conda源了,所以不需要添加-c pytorch -c conda-forge,否则默认从官方源添加
# 这一步需要等待一段时间,但清华源速度总比官方源强多了

# 其次安装必要库
conda install -c fvcore -c iopath -c conda-forge fvcore iopath

# 安装pytorch3d,只需要一条命令
conda install pytorch3d

那么就是激动人心的时刻了:


总结

完结撒花,希望后续在使用pytorch3d的过程中能够出一些好的教程,期待自己可以~

有问题请留言, 成功的童鞋麻烦留言告知啦。

安装缺少的 Perl 模块的最简单方法是啥?

【中文标题】安装缺少的 Perl 模块的最简单方法是啥?【英文标题】:What's the easiest way to install a missing Perl module?安装缺少的 Perl 模块的最简单方法是什么? 【发布时间】:2010-09-09 02:45:19 【问题描述】:

我收到此错误:

Can't locate Foo.pm in @INC

有没有比下载、解压、制作等更简单的安装方式?

【问题讨论】:

如果有问题的模块是核心模块,请咨询How to fix “Can't locate Archive/Tar.pm”。 在安全方面要非常小心:确保模块未被修改所需的内容必须以安全的方式从受信任的站点下载。关于cpan的使用见my answer。 【参考方案1】:

在 Unix 上

通常你在你的shell中启动cpan

$ cpan

然后输入

install Chocolate::Belgian

或简称:

cpan Chocolate::Belgian

在 Windows 上

如果您在 Windows 上使用 ActivePerl,PPM (Perl Package Manager) 与 CPAN.pm 具有许多相同的功能。

例子:

$ ppmppm> search net-smtpppm> install Net-SMTP-Multipart

请参阅 CPAN 常见问题解答中的 How do I install Perl modules?

许多发行版都将大量 perl 模块作为软件包提供。

Debian/Ubuntu:apt-cache search 'perl$' Arch Linux:pacman -Ss '^perl-' Gentoo:类别dev-perl

您应该始终更喜欢它们,因为您可以从自动(安全)更新删除的简易性中受益。使用 cpan 工具本身可能会非常棘手。

对于 Gentoo,有一个名为 g-cpan 的好工具,它可以从 CPAN 构建/安装模块并为您创建一个 Gentoo 包 (ebuild)。

【讨论】:

简短形式只是命令行中的“cpan Chocolate::Belgian” :) IIRC 最新的 ActivePerl 不再有命令行 ppm,它现在打开了一个精美的 GUI。 只需“ppm”即可打开 GUI,但后面的命令会停留在命令行中。因此,“ppm 帮助”、“ppm 安装 ...”等。 请注意,ppm 使用破折号作为模块路径分隔符,而不是通常的双冒号。 (也许是因为冒号意味着 dos 中的驱动器?)这让我好几次;) @MatthewLock: ppm 使用连字符- 因为您指定了要安装的发行版,这更加诚实。例如,如果您使用cpan 安装LWPLWP::SimpleLWP::UserAgent,它将为您安装分发版libwww-perl。大多数发行版都包含一个具有相同名称的模块,但也有几个例外【参考方案2】:

试试App::cpanminus:

# cpanm Chocolate::Belgian

非常适合安装东西。它不提供 CPAN 或 CPANPLUS 更复杂的功能,因此它很容易使用,只要您知道要安装哪个模块。如果您还没有 cpanminus,只需输入:

# cpan App::cpanminus

安装它。

也可以完全不使用 cpan 来安装它。基本的引导程序是,

curl -L http://cpanmin.us | perl - --sudo App::cpanminus

有关更多信息,请访问 App::cpanminus 页面并查看安装部分。

【讨论】:

使用cpan安装App::cpanminus有点奇怪。正常的安装说明涉及从cpanmin.us 下载其中一部分并使用它来安装其余部分的引导程序。这避免了cpan 的配置和创建(之后)无用的.cpan 目录。 在 Ubuntu 上,您可以从终端安装 cpanminus。我发现cpanmcpan 更好,因为它不会将错误日志放在屏幕上,而是将它们存储在临时日志文件中,并在出现错误时给出路径。 我在尝试你的命令时收到这个错误:Can't locate strict.pm in @INC(你可能需要安装 strict 模块)(@INC 包含:/etc/perl 【参考方案3】:

我注意到有些人建议在 sudo 下运行 cpan。这曾经是安装到系统目录所必需的,但现代版本的 CPAN shell 允许您将其配置为使用 sudo just 进行安装。这更安全,因为这意味着测试不会以 root 身份运行。

如果您有旧的 CPAN shell,只需安装新的 cpan(“安装 CPAN”),当您重新加载 shell 时,它应该会提示您配置这些新指令。

现在,当我在使用旧 CPAN 的系统上时,我要做的第一件事就是更新 shell 并将其设置为执行此操作,这样我就可以作为普通用户完成大部分 cpan 工作。

另外,我强烈建议 Windows 用户调查strawberry Perl。这是一个 Perl 版本,它带有一个预配置的 CPAN shell 和一个编译器。它还包括一些难以编译的 Perl 模块及其外部 C 库依赖项,尤其是 XML::Parser。这意味着在安装模块时,您可以像所有其他 Perl 用户一样做同样的事情,而且事情往往会更频繁地“正常工作”。

【讨论】:

install CPAN 从哪里来? $sudo apt-get install cpan? @Lao Tzu:不,因为 CPAN 是 Perl 核心模块,不能作为单独的 DEB 包提供。我认为在大多数情况下使用App::cpanminus 会更好,使用它真是一种享受。菲利普波特在这里的回答中提出了建议,您可以尝试this Chas. Owens answer。【参考方案4】:

如果您使用的是 Ubuntu,并且想要安装预打包的 perl 模块(例如 geo::ipfree),请尝试以下操作:

$ apt-cache search perl geo::ipfree libgeo-ipfree-perl - IP 地址 Perl 模块的查找国家/地区 $ sudo apt-get install libgeo-ipfree-perl

【讨论】:

apt-cache search perl 似乎只适用于简单的情况(可能仅当搜索词类似于 debian 包名称时)。它失败了,例如apt-cache search perl DDP --- 正确答案是 libdata-printer-perl【参考方案5】:

有几个人提到了 cpan 实用程序,但它不仅仅是启动一个 shell。只需给它您要安装的模块并让它工作即可。

$prompt> cpan Foo::Bar

如果你不给它任何参数,它会启动 CPAN.pm shell。这适用于 Unix、Mac,并且在 Windows(尤其是 Strawberry Perl)上应该没问题。

您还可以使用 cpan 工具执行其他几项操作。以下是当前功能的摘要(可能比 CPAN.pm 和 perl 附带的功能更新):

-a
Creates the CPAN.pm autobundle with CPAN::Shell->autobundle.

-A module [ module ... ]
Shows the primary maintainers for the specified modules

-C module [ module ... ]
Show the Changes files for the specified modules

-D module [ module ... ]
Show the module details. This prints one line for each out-of-date module (meaning,
modules locally installed but have newer versions on CPAN). Each line has three columns:
module name, local version, and CPAN version.

-L author [ author ... ]
List the modules by the specified authors.

-h
Prints a help message.

-O
Show the out-of-date modules.

-r
Recompiles dynamically loaded modules with CPAN::Shell->recompile.

-v
Print the script version and CPAN.pm version.

【讨论】:

【参考方案6】:

sudo perl -MCPAN -e 'install Foo'

【讨论】:

太棒了,这对我来说刚刚在带有 Git perl 的 Windows 上工作,但我必须先安装 GnuWin make【参考方案7】:

另见Yes, even you can use CPAN。它展示了如何在没有 root 或 sudo 访问权限的情况下使用 CPAN。

【讨论】:

【参考方案8】:

Otto 发了一个good suggestion。这也适用于 Debian,以及任何其他 Debian 衍生产品。缺少的部分是当 apt-cache search 找不到东西时该怎么办。

$ sudo apt-get install dh-make-perl build-essential apt-file
$ sudo apt-file update

然后,只要您有想要安装的随机模块:

$ cd ~/some/path
$ dh-make-perl --build --cpan Some::Random::Module
$ sudo dpkg -i libsome-random-module-perl-0.01-1_i386.deb

这会给你一个 deb 包,你可以安装它来获取 Some::Random::Module。此处的一大好处是手册页和示例脚本以及模块本身将放置在您选择的发行版位置。如果发行版发布了更新版本 Some::Random::Module 的官方软件包,它将在您进行 apt-get 升级时自动安装。

【讨论】:

【参考方案9】:

已经回答并接受了答案 - 但无论如何:

恕我直言,安装 CPAN 模块的最简单方法(在类似 unix 的系统上,并且对奇迹一无所知)是:

curl -L http://cpanmin.us | perl - --sudo App::cpanminus

以上是安装名为cpanm 的“零配置CPAN 模块安装程序”。 (可能需要几分钟才能安装 - 不要中断该过程)

之后 - 简单地说:

cpanm Foo
cpanm Module::One
cpanm Another::Module

【讨论】:

【参考方案10】:

很多推荐CPAN.pm,这很棒,但如果您使用Perl 5.10,那么您也可以访问CPANPLUS.pm,这类似于CPAN.pm,但更好。

当然,在CPAN 上仍然可以使用旧版 Perl 的人可以使用它。为什么不试试呢:

$ cpan CPANPLUS

【讨论】:

嘿,真可爱。使用 CPAN.pm 将其自身替换为 CPANPLUS。 :)【参考方案11】:

很多时候,cpan install 命令确实会失败并显示如下消息 “make test 已返回错误状态,不会强制安装”

在这种情况下,安装模块的方法如下:

perl -MCPAN -e "CPAN::Shell->force(qw(install Foo::Bar));"

【讨论】:

不幸的是,这会产生:无法在 @INC 中找到 CPAN.pm(您可能需要安装 CPAN 模块)(@INC 包含:/etc/perl跨度> 【参考方案12】:

使用 cpan 命令作为cpan Modulename

$ cpan HTML::Parser

要自动安装依赖项,请按照以下步骤操作

$ perl -MCPAN -e shell
cpan[1]>  o conf prerequisites_policy follow
cpan[2]>  o conf commit
exit

我更喜欢App::cpanminus,它会自动安装依赖项。做吧

$ cpanm HTML::Parser

【讨论】:

【参考方案13】:

在 ubuntu 上,大多数 perl 模块已经打包,因此安装速度比大多数其他必须编译的系统快得多。

例如,要在命令提示符下安装Foo::Bar,通常您只需这样做:

sudo apt-get install libfoo-bar-perl

遗憾的是,并非所有模块都遵循该命名约定。

【讨论】:

【参考方案14】:

Fedora LinuxEnterprise Linux 上,yum 还跟踪 perl 库依赖项。因此,如果 perl 模块可用,并且某些 rpm 包导出该依赖项,它将为您安装正确的包。

yum install 'perl(Chocolate::Belgian)'

(很可能是 perl-Chocolate-Belgian 包,甚至 ChocolateFactory 包)

【讨论】:

【参考方案15】:

即使它应该工作:

cpan -i module_name

【讨论】:

【参考方案16】:

我知道的两种方式:

使用 PPM:

对于 Windows (ActivePerl) 我使用了 ppm

从命令行输入 ppm。在 ppm 提示符下...

ppm> install foo

ppm> search foo

获取可用的 foo 模块列表。为所有命令键入 help

使用 CPAN:

您也可以像这样使用 CPAN(*nix 系统):

perl -MCPAN -e 'shell'

给你一个提示

cpan>

在提示符下...

cpan> install foo  (again to install the foo module)

键入 h 以获取 cpan 的命令列表

【讨论】:

您也可以直接从命令行安装“$ cpan Foo::Bar”。不需要花哨的单线或 CPAN 外壳。 :)【参考方案17】:

你可以在 Fedora 上使用

# yum install foo

只要 Fedora 有该模块的现有软件包。

【讨论】:

【参考方案18】:

对我来说最简单的方法是:

PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install DateTime::TimeZone'

a) 自动递归依赖检测/解析/安装

b) 它是一个在线 shell,适合设置脚本

【讨论】:

【参考方案19】:

如果您想将新模块放入您的 cpan shell 未配置为使用的自定义位置,那么也许以下内容会很方便。

 #wget <URL to the module.tgz>
 ##unpack
 perl Build.PL
./Build destdir=$HOME install_base=$HOME
./Build destdir=$HOME install_base=$HOME install

【讨论】:

【参考方案20】:

有时您可以使用yum search foo 搜索相关的perl 模块,然后使用yum install xxx 进行安装。

【讨论】:

【参考方案21】:

安全解决方案

许多答案都提到了使用cpan 实用程序(使用CPAN.pm),而没有提及安全性。默认情况下,CPAN 2.27 及更早版本将urllist 配置为使用http URL(即http://www.cpan.org/),这允许MITM 攻击,因此是不安全的。这是用于下载 CHECKSUMS 文件的内容,因此需要将其更改为安全 URL(例如 https://www.cpan.org/)。

所以,运行cpan并接受默认配置后,需要通过以下方式修改生成的MyConfig.pm文件(输出完整路径)。替换

'urllist' => [q[http://www.cpan.org/]],

通过

'urllist' => [q[https://www.cpan.org/]],

注意:https 是不够的;您还需要一个可以信任的网站。所以,如果你想选择一些任意的镜像,请小心。

那么你就可以照常使用cpan了。

我在 rt.cpan.org 上的 bug report 关于不安全的 URL。

【讨论】:

“cpan.org”不会被重定向到“cpan.org”吗? @DaveEveritt 从 http 到 https 的重定向仅对隐私有用,例如反对只能查看网络上传输的数据的人。但是如果攻击者控制了网络(例如公共wifi热点或一些不受保护的本地网络),man-in-the-middle attack 可能是可能的,并且攻击者将使用他自己的服务器(显然不是https://www.cpan.org/)。【参考方案22】:

似乎你已经得到了答案,但我想我会插话的。这就是我在 Ubuntu(或 debian 服务器)上的一些脚本中所做的

#!/usr/bin/perl

use warnings;
use strict;

#I've gotten into the habit of setting this on all my scripts, prevents weird path issues if the script is not being run by root
$ENV'PATH' = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin';

#Fill this with the perl modules required for your project
my @perl = qw(LWP::Simple XML::LibXML MIME::Lite DBI DateTime Config::Tiny Proc::ProcessTable);

chomp(my $curl = `which curl`);

if(!$curl) system('apt-get install curl -y > /dev/null'); 

chomp(my $cpanm = system('/bin/bash', '-c', 'which cpanm &>/dev/null'));

#installs cpanm if missing
if($cpanm) system('curl -s -L http://cpanmin.us | perl - --sudo App::cpanminus'); 

#loops through required modules and installs them if missing
foreach my $x (@perl)
    eval "use $x";
    if($@)
        system("cpanm $x");
        eval "use $x";
    

这对我很有效,也许这里有一些你可以使用的东西。

【讨论】:

【参考方案23】:

在带有 Perl 的 ActiveState 发行版的 Windows 上,使用 ppm 命令。

【讨论】:

【参考方案24】:

只需在 shell 上执行 cpan Foo::Bar 即可达到目的。

【讨论】:

以上是关于安装pytorch3d最简单方法的主要内容,如果未能解决你的问题,请参考以下文章

PyTorch安装教程(最简单方法)

anaconda中安装pytorch(GPU版)(离线安装)(最简单)

Python安装Pytorch教程(图文详解)

Pytorch安装教程(最全最详细版)

Anaconda中GPU版本Pytorch 的whl 安装方法2023.1最新最详细(附anaconda以及cuda&cudnn安装教程)

pytorch 数据加载器和/或 __getitem__ 函数中的浅拷贝和深拷贝