1 问题描述
在训练语音模型时,出现如下错误:
Traceback (most recent call last):
File "/opt/Bert-VITS2-2.0.2.1/train_ms.py", line 660, in <module>
run()
File "/opt/Bert-VITS2-2.0.2.1/train_ms.py", line 282, in run
train_and_evaluate(
File "/opt/Bert-VITS2-2.0.2.1/train_ms.py", line 518, in train_and_evaluate
utils.summarize(
File "/opt/Bert-VITS2-2.0.2.1/utils.py", line 139, in summarize
writer.add_image(k, v, global_step, dataformats="HWC")
File "/root/anaconda3/envs/vits2/lib/python3.9/site-packages/torch/utils/tensorboard/writer.py", line 614, in add_image
image(tag, img_tensor, dataformats=dataformats), global_step, walltime
File "/root/anaconda3/envs/vits2/lib/python3.9/site-packages/torch/utils/tensorboard/summary.py", line 441, in image
image = make_image(tensor, rescale=rescale)
File "/root/anaconda3/envs/vits2/lib/python3.9/site-packages/torch/utils/tensorboard/summary.py", line 486, in make_image
image = image.resize((scaled_width, scaled_height), Image.ANTIALIAS)
AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'
2 问题分析
查看本地PIL库版本号
(vits2) [root@localhost ~]# pip list
Package Version
------------------------- ------------
......
oauthlib 3.2.2
openai-whisper 20231106
orjson 3.9.10
packaging 23.2
pandas 2.1.2
phonemizer 3.2.1
Pillow 10.1.0
pip 23.3.1
platformdirs 3.11.0
pooch 1.8.0
proces 0.1.7
protobuf 4.23.4
psutil 5.9.6
pyasn1 0.5.0
pyasn1-modules 0.3.0
pycparser 2.21
pydantic 2.4.2
pydantic_core 2.10.1
pydub 0.25.1
Pygments 2.16.1
pykakasi 2.2.1
......
本地版本为Pillow==10.1.0,应该是在此版本中不存在ANTIALIAS属性
ANTIALIAS在 Pillow==10.0.0 中被删除
3 问题解决
方案1:修改代码
Image.ANTIALIAS ——> Image.LANCZOS 或 Image.Resampling.LANCZOS
方案2:降低Pillow版本
pip install pillow==9.5.0
再次运行代码,问题解决。
4 conda环境介绍
Conda是一个开源的包管理器和环境管理系统,用于安装、运行和更新包和其依赖项。它是由Anaconda, Inc.(以前称为Continuum Analytics)创建,用于支持Python程序开发,但它也可以用来管理来自其他语言的包。Conda使得包管理和环境隔离变得简单,对于处理多个项目中的依赖关系和版本控制尤其有用。
Conda是一个强大的工具,对于管理复杂的Python项目和环境至关重要。它简化了包管理和环境设置,使得Python开发更加容易和高效。通过使用Conda,开发者可以确保他们的项目在不同机器和操作系统上都能以相同的方式运行,大大提高了项目的可移植性和可复现性。
4.1 Conda的核心功能
-
包管理:Conda作为包管理器,可以安装、更新和移除Python包。它通过Conda仓库,如Anaconda Cloud或Conda Forge,来获取包。
-
环境管理:Conda允许用户创建隔离的环境,以便于不同项目可以拥有不同的库和/或Python版本。这在处理不兼容的依赖项或不同项目的需求时非常有用。
-
跨平台:Conda支持Linux、OS X和Windows,并允许创建跨平台的Python环境。
-
开源:Conda是开源的,允许用户查看源代码并对其进行改进。
4.2 使用Conda的优势
-
解决依赖性问题:Conda可以自动解决包之间的依赖关系,简化了安装过程。
-
环境隔离:创建独立的环境可以避免包之间的版本冲突,使得项目更稳定。
-
易于使用:Conda的命令行界面简单直观,易于学习和使用。
-
广泛的包支持:Conda支持Python的许多流行库和应用程序。
-
社区支持:作为一个流行的工具,Conda拥有一个活跃的社区,用户可以从中找到支持和资源。
4.3 Conda环境的创建和管理
-
创建新环境:使用
conda create
命令创建一个新环境,可以指定Python版本和所需的包。 -
激活环境:使用
conda activate
命令来激活环境。 -
安装包:在激活的环境中使用
conda install
命令来安装新的包。 -
环境列表:使用
conda env list
来查看所有可用的Conda环境。 -
移除环境:使用
conda env remove
命令来移除不再需要的环境。
4.4 应用场景
-
数据科学和机器学习:Conda非常适合于数据科学和机器学习项目,这些项目通常需要多个库和框架。
-
软件开发:软件开发者使用Conda来管理项目依赖,确保一致的开发环境。
-
教学和学术研究:教师和研究人员使用Conda来创建具有特定库和工具的环境,用于教学和研究。