AUTODL从零开始配置环境(1)MoMKE

仅用于记录配置环境时各种遇到的bug和解决方式:

  1. 从git下载代码到autodl:git clone https://github.com/wxxv/MoMKE.git

  2. 在AUTODL中配置环境
    (1)初始化conda(autodl第一次创建环境必须初始化)
     

    conda init

         (2)创建环境MoMKE
        (MoMKE自己的requirements.txt文件中有conda源也有pip源,很多依赖的版本冲突,导致依赖关系混乱)

        在AUTODL中,我的解决方法是:把依赖包分成三份:

        1.conda源的conda.txt,在创建环境时下载

conda create --name MoMKE --file conda.txt

        2.torch和cudn,这俩版本比较乱,用命令直接下载
        这块的cudnn视情况更新,不然有些包下载不了

conda install pytorch=1.12.0 torchvision=0.13.0 torchaudio=0.12.0 -c pytorch
conda install cudnn=6.0

         3.pip源的pip.txt
        建议使用第二条命令

pip install -r pip.txt
pip install -r pip.txt --no-deps

        (注:在pip.txt中,pip依赖配置换乱,有些pip依赖版本格式冲突,有些与上述用conda下        载        的依赖冲突)

        针对上述问题,我的解决办法是分批下载pip.txt,找出有冲突的部分强制下载

        下面我会给出整理好的conda依赖conda.txt和pip依赖pip.txt

        conda:

#conda.txt

_libgcc_mutex=0.1=main
_openmp_mutex=5.1=1_gnu
blas=1.0=mkl
brotlipy=0.7.0=py38h27cfd23_1003
ca-certificates=2023.01.10=h06a4308_0
certifi=2022.12.7=py38h06a4308_0
cffi=1.15.1=py38h74dc2b5_0
charset-normalizer=2.0.4=pyhd3eb1b0_0
cryptography=39.0.1=py38h9ce1e76_0
idna=3.4=py38h06a4308_0
intel-openmp=2021.4.0=h06a4308_3561
ld_impl_linux-64=2.38=h1181459_1
libffi=3.3=he6710b0_2
libgcc-ng=11.2.0=h1234567_1
libgomp=11.2.0=h1234567_1
libstdcxx-ng=11.2.0=h1234567_1
mkl=2021.4.0=h06a4308_640
mkl-service=2.4.0=py38h7f8727e_0
mkl_fft=1.3.1=py38hd3c417c_0
mkl_random=1.2.2=py38h51133e4_0
ncurses=6.4=h6a678d5_0
openssl=1.1.1t=h7f8727e_0
pip=23.0.1=py38h06a4308_0
pycparser=2.21=pyhd3eb1b0_0
pyopenssl=23.0.0=py38h06a4308_0
pysocks=1.7.1=py38h06a4308_0
python=3.8.13=h12debd9_0
readline=8.2=h5eee18b_0
requests=2.29.0=py38h06a4308_0
setuptools=66.0.0=py38h06a4308_0
sqlite=3.41.2=h5eee18b_0
tk=8.6.12=h1ccaba5_0
typing_extensions=4.5.0=py38h06a4308_0
urllib3=1.26.15=py38h06a4308_0
wheel=0.38.4=py38h06a4308_0
zlib=1.2.13=h5eee18b_0

 pip:

pip install -r pip.txt
pip install -r pip.txt --no-deps
#pip.txt

accelerate==0.22.0
addict==2.4.0
aiohttp==3.8.3
aiosignal==1.3.1
albumentations==1.3.0
aliyun-python-sdk-core==2.13.36
aliyun-python-sdk-kms==2.16.0
antlr4-python3-runtime==4.8
anyio==3.6.1
anykeystore==0.2
appdirs==1.4.4
argon2-cffi==21.3.0
argon2-cffi-bindings==21.2.0
asttokens==2.1.0
async-timeout==4.0.2
attrs==22.1.0
audeer==1.20.1
audioread==3.0.0
audmetric==1.2.0
av==9.0.0
backcall==0.2.0
beautifulsoup4==4.11.1
bitsandbytes==0.41.1
black==23.9.1
bleach==5.0.1
boto3==1.26.73
botocore==1.29.73
brotli==1.1.0
click>=8.0.0
cloudpickle==2.2.1
coloredlogs==15.0.1
confection==0.0.3
contextlib2==21.6.0
contourpy==1.0.6
crcmod==1.7
cryptacular==1.6.2
cycler==0.11.0
cymem==2.0.7
cython==0.29.32
dataclasses==0.6
datasets==2.5.2
debugpy==1.6.3
decord==0.6.0
deepspeed==0.10.3
defusedxml==0.7.1
descartes==1.1.0
dill==0.3.5.1
dlib==19.24.0
easydict==1.10
editdistance==0.6.0
einops==0.4.1
entrypoints==0.4
executing==1.2.0
fairscale==0.4.12
fastai==2.7.10
fastcore==1.5.27
fvcore==0.1.5.post20220305
fastdownload==0.0.7
fastjsonschema==2.16.2
fastprogress==1.0.3
ffmpeg==1.4
fire==0.4.0
fonttools==4.38.0
frozenlist==1.3.3
fsspec==2022.11.0
ftfy==6.1.1
greenlet==2.0.2
h5py==3.6.0
hjson==3.0.2
huggingface-hub==0.17.2
humanfriendly==10.0
hupper==1.11
hydra-core==1.1.2
imgaug==0.4.0
importlib-resources==5.2.3
inflate64==0.3.1
iopath==0.1.9
ipykernel==6.17.1
ipython==8.6.0
ipython-genutils==0.2.0
ipywidgets==8.0.2
jedi==0.18.2
jmespath==0.10.0
joblib==1.2.0
jpeg4py==0.1.4
json-tricks==3.16.1
jsonlines==3.0.0
jsonplus==0.8.0
jsonschema==4.17.1
keras==2.11.0
kiwisolver==1.4.4
kornia==0.6.8
langcodes==3.3.0
lazy-loader==0.2
librosa==0.10.0.post2
llvmlite==0.40.1
lmdb==1.3.0
loralib==0.1.2
lpips==0.1.4
markupsafe==2.1.5
matplotlib==3.5.1
matplotlib-inline==0.1.6
ml-collections==0.1.1
mmcls==0.24.1
mmdet==2.26.0
modelscope==1.0.4
mpmath==1.2.1
msgpack==1.0.4
mtcnn==0.1.1
multidict==6.0.2
multiprocess==0.70.13
multivolumefile==0.2.3
murmurhash==1.0.9
mypy-extensions==1.0.0
nbclassic==0.4.8
nbclient==0.7.0
nbformat==5.7.0
nest-asyncio==1.5.6
networkx==2.8.8
ninja==1.10.2.3
notebook==6.5.2
notebook-shim==0.2.2
numba==0.57.1
numpy==1.24.3
nuscenes-devkit==1.1.9
omegaconf==2.1.2
onnxruntime==1.13.1
opencv-python==4.5.5.64
opencv-python-headless==4.6.0.66
optimum==1.13.1
oss2==2.16.0
packaging==23.1
pai-easycv==0.7.0
pandas==1.3.5
pandocfilters==1.5.0
parameterized==0.9.0
parso==0.8.3
pastedeploy==3.0.1
pathspec==0.11.2
pathy==0.10.0
pbkdf2==1.3
peft==0.5.0
pexpect==4.8.0
pickleshare==0.7.5
pillow==10.0.0
pkgutil-resolve-name==1.3.10
plaster==1.1.2
plaster-pastedeploy==1.0.1
platformdirs==2.5.4
pooch==1.6.0
portalocker==2.7.0
prefetch-generator==1.0.1
preshed==3.0.8
prettytable==3.5.0
prometheus-client==0.15.0
prompt-toolkit==3.0.33
protobuf==3.20.1
psutil==5.9.4
ptyprocess==0.7.0
pure-eval==0.2.2
py-cpuinfo==9.0.0
py7zr==0.20.6
pyarrow==7.0.0
pybcj==1.0.1
pyclipper==1.3.0.post4
pycocoevalcap==1.2
pycocotools==2.0.4
pycryptodome==3.16.0
pycryptodomex==3.18.0
pytorch-metric-learning==1.6.3
pytorch-transformers==1.2.0
pytorchvideo==0.1.5
pydantic==1.8.2
pygments==2.13.0
pyppmd==1.0.0
pyquaternion==0.9.9
pyramid==2.0.1
pyramid-mailer==0.15.1
pyrsistent==0.19.2
python3-openid==3.2.0
pywavelets==1.4.1
pyzmq==24.0.1
pyzstd==0.15.9
qtconsole==5.4.0
qtpy==2.3.0
qudida==0.0.4
rapidfuzz==2.13.2
repoze-sendmail==4.4.1
responses==0.18.0
s3transfer==0.6.0
sacremoses==0.0.53
safetensors==0.3.3
scikit-image==0.19.3
scikit-learn==1.0.2
scipy==1.10.1
send2trash==1.8.0
sentencepiece==0.1.97
shapely==1.8.5.post1
simplejson==3.18.0
six==1.12.0
sklearn==0.0
smart-open==5.2.1
smogn==0.1.2
sniffio==1.3.0
sortedcontainers==2.4.0
soundfile==0.12.1
soupsieve==2.3.2.post1
soxr==0.3.5
spacy==3.3.0
spacy-legacy==3.0.10
spacy-loggers==1.0.3
sqlalchemy==1.4.46
srsly==2.4.5
stack-data==0.6.2
sympy==1.11.1
tabulate==0.9.0
tensorboard==2.8.0
tensorboardx==2.5.1
tensorflow-estimator==2.11.0
termcolor==2.4.0
terminado==0.17.0
terminaltables==3.1.10
texttable==1.6.7
tf-slim==1.1.0
thinc==8.0.17
thop==0.1.1-2209072238
threadpoolctl==3.1.0
tifffile==2022.10.10
timm==0.4.9
tinycss2==1.2.1
tokenize-rt==5.2.0
tokenizers==0.13.3
torch-geometric==2.3.1
//torch-scatter==2.0.9
torchmetrics==0.10.3
torchsummary==1.5.1
tornado==6.2
tqdm==4.65.0
traitlets==5.5.0
transaction==3.0.1
transformers==4.33.2
translationstring==1.4
trl==0.7.1
typer==0.4.2
validators==0.20.0
velruse==1.1.1
venusian==3.0.0
wasabi==0.10.1
wcwidth==0.2.5
webencodings==0.5.1
webob==1.8.7
websocket-client==1.4.2
widgetsnbextension==4.0.3
wtforms==3.0.1
wtforms-recaptcha==0.3.2
xpinyin==0.7.6
xtcocotools==1.12
xxhash==3.1.0
yacs==0.1.8
yapf==0.32.0
yarl==1.8.1
zope-deprecation==4.4.0
zope-interface==5.5.2
zope-sqlalchemy==2.0
blis==0.7.9
catalogue==2.0.8
click==7.1.2 to 8.1.7
dlib==19.24.0  killed
flask==1.1.4
fastai==2.7.10
jinja2==2.11.3 to 3.1.4
jupyter==1.0.0
jupyter-client==7.4.7
jupyter-console==6.4.4
jupyter-core==5.7.2
jupyter-server==1.21.0
jupyterlab-pygments==0.2.2
jupyterlab-widgets==3.0.3
mistune==2.0.4
nbconvert==7.2.5
pai-easycv==0.7.0
pycocotools==2.0.4
timm==0.4.5 
apex==0.1
cauchy-mult==0.0.0
shotdetect-scenedetect-lgss==0.0.3
dlib==19.24.0  killed
torch-scatter==2.0.9 
peft==0.5.0
plaster==1.1.2
plaster-pastedeploy==1.0.1
repoze-sendmail==4.4.1
transaction==3.0.1
venusian==3.0.0

3.报错日志

11.24.2024

(1)找不到指定版本的包,说明conda源配置有问题

Collecting package metadata (repodata.json): done
Solving environment: failed
ResolvePackageNotFound: 
 joblib==1.2.0=pypi_0
torchsummary==1.5.1=pypi_0

解决方法:配置源(包括但不限于,加入pypi源和conda-forge)

conda config --add channels https://conda.anaconda.org/pypi/linux-64
conda config --add channels https://conda.anaconda.org/pypi/noarch
conda config --add channels conda-forge

配置源的简单指令:

删除(所有):
conda config --remove-key channels
删除(指定):
conda config --remove channels http----
添加:
conda config --add channels http----
调节查找方式,严格在一个源查找,或者在多个源灵活查找:
conda config --set channel_priority strict
conda config --set channel_priority flexible


 

(2)依赖关系混乱

Collecting package metadata (current_repodata.json): done

Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.

Collecting package metadata (repodata.json): done

Solving environment: failed

解决环境问题:初始固定解决失败。正在尝试灵活解决。”

(这句话通常出现在使用conda管理Python环境和包时,意味着conda在尝试解决环境依赖问题时遇到了困难,首先是尝试了一种较为严格的解决方案(固定解决),但没有成功,然后它会尝试一种更灵活的解决方案(灵活解决)。)

说明依赖关系混乱,conda帮不了你

(3)Solving environment: \ 一直卡着不动

很大概率是conda版本不够,一般来说,更新conda后就能解决问题

conda update -n base -c defaults conda
conda update –-all

这是我在网上找到的详细分析,仅供参考:【已解决】Anaconda中conda 某个包之后Solving environment: \一直转 卡住不动解决办法(图文教程)-优快云博客

12.8.2024

(1)发现解析依赖时失败,很可能因为requirements.txt文件中部分依赖冲突,现在尝试逐个下载

将requirements.txt分为三部分:

  1. Conda下载
  2. pip下载
  3. 单独下载

(2)系统盘爆满:开新实例

在AUTODL的同一环境下多次下载依赖,会导致系统盘爆满,最简单的方式就是再开一个实例

(3)安装依赖时进程被killed

解决方法:

  1. 内存不够,开新实例
  2. 进程过多:分批下载pip包
  3. 依赖关系复杂:--no-deps,不用下载相关依赖
    pip install -r pip.txt --no-deps

后来发现,被killed的真正原因是:

(1)用的无卡模式开机(下面有分析)

解决办法:正常开机

(2)依赖关系复杂,有些依赖会重复下载相关依赖,例如:安装某些依赖时,会重复下载torch,py等等

解决办法:--no-deps,不用下载相关依赖

pip install -r pip.txt --no-deps

12.9.2024

(1)下载依赖时,检测不到cuda
(torch和cuda版本不正确,这也是配置环境时为什么要单独下载这俩,很容易报错)

No CUDA runtime is found, using CUDA_HOME='/usr/local/cuda'

解决办法:

        1.检查pytorch与cudn版本是否匹配: 如果不匹配,推荐解决办法: 【PointSet】の 填坑指南_no cuda runtime is found,-优快云博客

nvcc -V

 

        2.检查是否开启GPU设备:正常开机
(在AUTODL中,无卡开机不会运行GPU,而有些依赖需要调用GPU测试,所以会被killed)

 

nvidia-smi

以上是目前遇到的大部分bug,未完待续.......

### 配置AutoDL运行环境 #### 1. 安装依赖项 为了成功配置AutoDL的运行环境,首先需要确保本地计算机已安装必要的软件和库。这通常包括Python解释器以及虚拟环境管理工具(如`virtualenv`或`conda`)。推荐使用Conda作为包管理和环境隔离工具[^1]。 ```bash # 更新Conda至最新版本 conda update conda # 创建一个新的Conda环境并指定Python版本 conda create -n autodl_env python=3.8 # 激活新创建的环境 conda activate autodl_env ``` #### 2. 连接PyCharm与AutoDL服务器 AutoDL提供了一种便捷的方式用于远程开发。通过SSH协议可以将PyCharm专业版与AutoDL服务器相连。以下是具体的连接方法: - **配置SSH密钥** 如果尚未生成SSH密钥,则可以通过以下命令完成: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` - **上传公钥到AutoDL账户** 登录到AutoDL控制台后,在用户设置页面找到SSH Key选项,并粘贴生成的公钥内容。 - **在PyCharm中添加部署配置** 打开PyCharm,进入 `File -> Settings -> Build, Execution, Deployment -> Configuration` 页面,按照提示输入AutoDL服务器的相关信息(IP地址、用户名等),并通过测试验证连接是否正常。 #### 3. 使用cuML优化计算性能 对于大规模数据处理任务,建议利用NVIDIA提供的cuML库替代传统的Scikit-Learn以提升效率[^4]。由于cuML仅支持Linux操作系统,因此需借助AutoDL上的GPU资源来执行相关操作。具体步骤如下所示: - **安装Rapids生态中的cuML组件** 在激活好的环境中运行下面这条指令即可完成安装过程。 ```bash conda install -c rapidsai -c nvidia -c conda-forge cudf cuml=21.12 python=3.8 cuda-version=<对应CUDA版本> ``` - **编写兼容代码示例** 下面展示了一个简单的线性回归模型训练脚本,它展示了如何无缝切换到基于GPU加速的工作流。 ```python import numpy as np from cuml.linear_model import LinearRegression # 构造随机样本数据 X = np.random.rand(10000, 5).astype(np.float32) y = 5 * X[:, 0] + 7 * X[:, 1] + np.random.randn(10000).astype(np.float32) model = LinearRegression() model.fit(X, y) predictions = model.predict(X[:10]) print(predictions) ``` #### 4. 探索自动化机器学习框架 如果希望进一步简化建模流程,还可以尝试集成某些流行的AutoML解决方案,比如Auto-Sklearn或者TPOT等工具[^2]。这些高级别的API允许开发者专注于定义业务逻辑而非底层技术细节。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值