使用 conda 安装 torchtext 0.11.0 后出现 ImportError
ImportError after installing torchtext 0.11.0 with conda
我已经使用 conda 安装了 pytorch
版本 1.10.0 以及 torchtext
、torchvision
和 torchaudio
。我的 PyTorch 是 cpu-only,我已经尝试使用 conda install pytorch-mutex -c pytorch
和 conda install pytorch cpuonly -c pytorch
来安装 cpuonly 版本,两者都产生了我将在以下几行。
我还在 conda 中安装了 pytorch-lightning
,同时在环境中通过 pip 安装了 jsonargparse[summaries
。
我写了这段代码,看看 LightningCLI
是否有效。
# script.py
import torch
import pytorch_lightning as pl
class BoringModel(LightningModule):
def __init__(self):
super().__init__()
self.layer = torch.nn.Linear(32, 2)
def forward(self, x):
return self.layer(x)
def training_step(self, batch, batch_idx):
loss = self(batch).sum()
self.log("train_loss", loss)
return {"loss": loss}
def validation_step(self, batch, batch_idx):
loss = self(batch).sum()
self.log("valid_loss", loss)
def test_step(self, batch, batch_idx):
loss = self(batch).sum()
self.log("test_loss", loss)
def configure_optimizers(self):
return torch.optim.SGD(self.layer.parameters(), lr=0.1)
cli = LightningCLI(BoringModel)
但是当我 运行 它使用 python -m script fit --print_config
时,我得到以下错误:
ImportError: /home/farhood/miniconda3/envs/pytorch_dummy_environment/lib/python3.9/site-packages/torchtext/_torchtext.so: undefined symbol: _ZNK5torch3jit6MethodclESt6vectorIN3c106IValueESaIS4_EERKSt13unordered_mapISsS4_St4hashISsESt8equal_toISsESaISt4pairIKSsS4_EEE
这表明我的 Conda 安装出现问题,可能与 torchtext
有某种关系。
这是安装的torch相关包的版本:
pytorch 1.10.0 cpu_py39hc5866cc_0 conda-forge
pytorch-lightning 1.5.2 pyhd8ed1ab_0 conda-forge
pytorch-mutex 1.0 cuda pytorch
torchaudio 0.10.0 py39_cpu pytorch
torchmetrics 0.6.0 pyhd8ed1ab_0 conda-forge
torchtext 0.11.0 py39 pytorch
torchvision 0.11.1 py39_cpu pytorch
所以为了解决这个问题,我不得不更改我的 environment.yaml
以强制 pytorch
从 pytorch
频道安装。
所以这是我的 environment.yaml
现在:
channels:
- defaults
- pytorch
- conda-forge
dependencies:
# ML section
- pytorch::pytorch
- pytorch::torchtext
- pytorch::torchvision
- pytorch::torchaudio
- pytorch::cpuonly
- mlflow=1.21.0
- pytorch-lightning>=1.5.2
- pip:
- jsonargparse[signatures]
使用它我不再收到错误。现在安装的pytorch相关的东西是:
cpuonly 2.0 0 pytorch
pytorch 1.10.0 py3.9_cpu_0 pytorch
pytorch-lightning 1.5.2 pyhd8ed1ab_0 conda-forge
pytorch-mutex 1.0 cpu pytorch
torchaudio 0.10.0 py39_cpu [cpuonly] pytorch
torchtext 0.11.0 py39 pytorch
torchvision 0.11.1 py39_cpu [cpuonly] pytorch
我已经使用 conda 安装了 pytorch
版本 1.10.0 以及 torchtext
、torchvision
和 torchaudio
。我的 PyTorch 是 cpu-only,我已经尝试使用 conda install pytorch-mutex -c pytorch
和 conda install pytorch cpuonly -c pytorch
来安装 cpuonly 版本,两者都产生了我将在以下几行。
我还在 conda 中安装了 pytorch-lightning
,同时在环境中通过 pip 安装了 jsonargparse[summaries
。
我写了这段代码,看看 LightningCLI
是否有效。
# script.py
import torch
import pytorch_lightning as pl
class BoringModel(LightningModule):
def __init__(self):
super().__init__()
self.layer = torch.nn.Linear(32, 2)
def forward(self, x):
return self.layer(x)
def training_step(self, batch, batch_idx):
loss = self(batch).sum()
self.log("train_loss", loss)
return {"loss": loss}
def validation_step(self, batch, batch_idx):
loss = self(batch).sum()
self.log("valid_loss", loss)
def test_step(self, batch, batch_idx):
loss = self(batch).sum()
self.log("test_loss", loss)
def configure_optimizers(self):
return torch.optim.SGD(self.layer.parameters(), lr=0.1)
cli = LightningCLI(BoringModel)
但是当我 运行 它使用 python -m script fit --print_config
时,我得到以下错误:
ImportError: /home/farhood/miniconda3/envs/pytorch_dummy_environment/lib/python3.9/site-packages/torchtext/_torchtext.so: undefined symbol: _ZNK5torch3jit6MethodclESt6vectorIN3c106IValueESaIS4_EERKSt13unordered_mapISsS4_St4hashISsESt8equal_toISsESaISt4pairIKSsS4_EEE
这表明我的 Conda 安装出现问题,可能与 torchtext
有某种关系。
这是安装的torch相关包的版本:
pytorch 1.10.0 cpu_py39hc5866cc_0 conda-forge
pytorch-lightning 1.5.2 pyhd8ed1ab_0 conda-forge
pytorch-mutex 1.0 cuda pytorch
torchaudio 0.10.0 py39_cpu pytorch
torchmetrics 0.6.0 pyhd8ed1ab_0 conda-forge
torchtext 0.11.0 py39 pytorch
torchvision 0.11.1 py39_cpu pytorch
所以为了解决这个问题,我不得不更改我的 environment.yaml
以强制 pytorch
从 pytorch
频道安装。
所以这是我的 environment.yaml
现在:
channels:
- defaults
- pytorch
- conda-forge
dependencies:
# ML section
- pytorch::pytorch
- pytorch::torchtext
- pytorch::torchvision
- pytorch::torchaudio
- pytorch::cpuonly
- mlflow=1.21.0
- pytorch-lightning>=1.5.2
- pip:
- jsonargparse[signatures]
使用它我不再收到错误。现在安装的pytorch相关的东西是:
cpuonly 2.0 0 pytorch
pytorch 1.10.0 py3.9_cpu_0 pytorch
pytorch-lightning 1.5.2 pyhd8ed1ab_0 conda-forge
pytorch-mutex 1.0 cpu pytorch
torchaudio 0.10.0 py39_cpu [cpuonly] pytorch
torchtext 0.11.0 py39 pytorch
torchvision 0.11.1 py39_cpu [cpuonly] pytorch