参考:
https://blog.csdn.net/m0_55245520/article/details/130424828
https://blog.csdn.net/jacke121/article/details/93592487
参考 https://mp.weixin.qq.com/s?__biz=MzI5MTcwNjA4NQ%3D%3D&idx=1&mid=2247491983&scene=21&sn=2052e7a038f2db52eb282b88495a7dfd#wechat_redirect
使用anaconda的environment.yml安装环境,将conda镜像改为上一步中的conda镜像,即将channels中的文件改变。这一步时间会比较长,主要使用conda install进行安装,要耐心等待。
conda env create -f environment.yml
conda activate env_cp39_GCN
yml文件如下,
name: env_cp39_GCN
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- pytorch
- dglteam
- conda-forge
- defaults
dependencies:
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=1_gnu
- argon2-cffi=21.3.0=pyhd8ed1ab_0
- argon2-cffi-bindings=21.2.0=py39hb9d737c_2
- asttokens=2.0.5=pyhd8ed1ab_0
- attrs=21.4.0=pyhd8ed1ab_0
- backcall=0.2.0=pyh9f0ad1d_0
- backports=1.0=py_2
- backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0
- beautifulsoup4=4.11.1=pyha770c72_0
- blas=1.0=mkl
- bleach=5.0.0=pyhd8ed1ab_0
- boost=1.74.0=py39h5472131_5
- boost-cpp=1.74.0=hc6e9bd1_3
- bottleneck=1.3.4=py39hce1f21e_0
- brotli=1.0.9=h166bdaf_7
- brotli-bin=1.0.9=h166bdaf_7
- brotlipy=0.7.0=py39h27cfd23_1003
- bzip2=1.0.8=h7b6447c_0
- ca-certificates=2022.6.15=ha878542_0
- cairo=1.16.0=h6cf1ce9_1008
- certifi=2022.6.15=py39hf3d152e_0
- cffi=1.15.0=py39hd667e15_1
- charset-normalizer=2.0.4=pyhd3eb1b0_0
- click=8.0.4=py39h06a4308_0
- colorama=0.4.4=pyhd3eb1b0_0
- cryptography=36.0.0=py39h9ce1e76_0
- cudatoolkit=10.2.89=hfd86e86_1
- cycler=0.11.0=pyhd8ed1ab_0
- debugpy=1.6.0=py39h5a03fae_0
- decorator=5.1.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- dgl=0.8.1=py39_0
- dgl-cuda10.2=0.8.1=py39_0
- entrypoints=0.4=pyhd8ed1ab_0
- executing=0.8.3=pyhd8ed1ab_0
- ffmpeg=4.3=hf484d3e_0
- flit-core=3.7.1=pyhd8ed1ab_0
- fontconfig=2.13.1=h6c09931_0
- fonttools=4.32.0=py39hb9d737c_0
- freetype=2.11.0=h70c0345_0
- fuzzywuzzy=0.18.0=pyhd8ed1ab_0
- gettext=0.19.8.1=h73d1719_1008
- giflib=5.2.1=h7b6447c_0
- gmp=6.2.1=h2531618_2
- gnutls=3.6.15=he1e5248_0
- greenlet=1.1.2=py39h5a03fae_2
- icu=68.2=h9c3ff4c_0
- idna=3.3=pyhd3eb1b0_0
- imbalanced-learn=0.9.1=pyhd8ed1ab_1
- importlib-metadata=4.11.3=py39hf3d152e_1
- importlib_resources=5.7.0=pyhd8ed1ab_0
- intel-openmp=2021.4.0=h06a4308_3561
- ipykernel=6.13.0=py39hef51801_0
- ipython=8.2.0=py39hf3d152e_0
- ipython_genutils=0.2.0=py_1
- jedi=0.18.1=py39hf3d152e_1
- jinja2=3.1.1=pyhd8ed1ab_0
- joblib=1.1.0=pyhd8ed1ab_0
- jpeg=9d=h7f8727e_0
- jsonschema=4.4.0=pyhd8ed1ab_0
- jupyter_client=7.2.2=pyhd8ed1ab_1
- jupyter_core=4.9.2=py39hf3d152e_0
- jupyterlab_pygments=0.2.2=pyhd8ed1ab_0
- kiwisolver=1.4.2=py39hf939315_1
- lame=3.100=h7b6447c_0
- lcms2=2.12=h3be6417_0
- ld_impl_linux-64=2.36.1=hea4e1c9_2
- libbrotlicommon=1.0.9=h166bdaf_7
- libbrotlidec=1.0.9=h166bdaf_7
- libbrotlienc=1.0.9=h166bdaf_7
- libffi=3.4.2=h7f98852_5
- libgcc-ng=11.2.0=h1d223b6_15
- libgfortran-ng=7.3.0=hdf63c60_0
- libglib=2.68.4=h174f98d_1
- libgomp=11.2.0=h1d223b6_15
- libiconv=1.16=h516909a_0
- libidn2=2.3.2=h7f8727e_0
- libpng=1.6.37=hbc83047_0
- libprotobuf=3.18.0=h780b84a_1
- libsodium=1.0.18=h36c2ea0_1
- libstdcxx-ng=11.2.0=he4da1e4_15
- libtasn1=4.16.0=h27cfd23_0
- libtiff=4.2.0=h85742a9_0
- libunistring=0.9.10=h27cfd23_0
- libuuid=1.0.3=h7f8727e_2
- libuv=1.40.0=h7b6447c_0
- libwebp=1.2.2=h55f646e_0
- libwebp-base=1.2.2=h7f8727e_0
- libxcb=1.13=h7f98852_1004
- libxml2=2.9.12=h72842e0_0
- littleutils=0.2.2=py_0
- lz4-c=1.9.3=h295c915_1
- markupsafe=2.1.1=py39hb9d737c_1
- matplotlib-base=3.5.1=py39h2fa2bec_0
- matplotlib-inline=0.1.3=pyhd8ed1ab_0
- mistune=0.8.4=py39h3811e60_1005
- mkl=2021.4.0=h06a4308_640
- mkl-service=2.4.0=py39h7f8727e_0
- mkl_fft=1.3.1=py39hd3c417c_0
- mkl_random=1.2.2=py39h51133e4_0
- munkres=1.1.4=pyh9f0ad1d_0
- nbclient=0.6.0=pyhd8ed1ab_0
- nbconvert=6.5.0=pyhd8ed1ab_0
- nbconvert-core=6.5.0=pyhd8ed1ab_0
- nbconvert-pandoc=6.5.0=pyhd8ed1ab_0
- nbformat=5.3.0=pyhd8ed1ab_0
- ncurses=6.3=h7f8727e_2
- nest-asyncio=1.5.5=pyhd8ed1ab_0
- nettle=3.7.3=hbbd107a_1
- networkx=2.7.1=pyhd3eb1b0_0
- notebook=6.4.10=pyha770c72_0
- numexpr=2.8.1=py39h6abb31d_0
- numpy=1.21.5=py39he7a7128_1
- numpy-base=1.21.5=py39hf524024_1
- ogb=1.3.3=pyhd8ed1ab_0
- openh264=2.1.1=h4ff587b_0
- openssl=3.0.3=h166bdaf_0
- outdated=0.2.1=pyhd8ed1ab_0
- packaging=21.3=pyhd3eb1b0_0
- pandas=1.4.1=py39h295c915_1
- pandoc=2.18=ha770c72_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- parso=0.8.3=pyhd8ed1ab_0
- pcre=8.45=h9c3ff4c_0
- pexpect=4.8.0=pyh9f0ad1d_2
- pickleshare=0.7.5=py_1003
- pillow=9.0.1=py39h22f2fdc_0
- pip=21.2.4=py39h06a4308_0
- pixman=0.40.0=h36c2ea0_0
- prometheus_client=0.14.1=pyhd8ed1ab_0
- prompt-toolkit=3.0.29=pyha770c72_0
- protobuf=3.18.0=py39he80948d_0
- psutil=5.9.0=py39hb9d737c_1
- pthread-stubs=0.4=h36c2ea0_1001
- ptyprocess=0.7.0=pyhd3deb0d_0
- pure_eval=0.2.2=pyhd8ed1ab_0
- pycairo=1.21.0=py39h0934665_1
- pycparser=2.21=pyhd3eb1b0_0
- pygments=2.11.2=pyhd8ed1ab_0
- pyopenssl=22.0.0=pyhd3eb1b0_0
- pyparsing=3.0.4=pyhd3eb1b0_0
- pyrsistent=0.18.1=py39hb9d737c_1
- pysocks=1.7.1=py39h06a4308_0
- python=3.9.7=hf930737_3_cpython
- python-dateutil=2.8.2=pyhd3eb1b0_0
- python-fastjsonschema=2.15.3=pyhd8ed1ab_0
- python-levenshtein=0.12.2=py39hb9d737c_2
- python_abi=3.9=2_cp39
- pytorch=1.11.0=py3.9_cuda10.2_cudnn7.6.5_0
- pytorch-mutex=1.0=cuda
- pytz=2021.3=pyhd3eb1b0_0
- pyzmq=22.3.0=py39headdf64_2
- readline=8.1.2=h7f8727e_1
- reportlab=3.5.68=py39he59360d_1
- requests=2.27.1=pyhd3eb1b0_0
- scipy=1.6.2=py39had2a1c9_1
- send2trash=1.8.0=pyhd8ed1ab_0
- setuptools=61.2.0=py39h06a4308_0
- six=1.16.0=pyhd3eb1b0_1
- soupsieve=2.3.1=pyhd8ed1ab_0
- sqlalchemy=1.4.35=py39hb9d737c_0
- sqlite=3.38.2=hc218d9a_0
- stack_data=0.2.0=pyhd8ed1ab_0
- tensorboardx=2.5=pyhd8ed1ab_0
- terminado=0.13.3=py39hf3d152e_1
- threadpoolctl=3.1.0=pyh8a188c0_0
- tinycss2=1.1.1=pyhd8ed1ab_0
- tk=8.6.11=h1ccaba5_0
- torchaudio=0.11.0=py39_cu102
- torchvision=0.12.0=py39_cu102
- tornado=6.1=py39hb9d737c_3
- tqdm=4.63.0=pyhd3eb1b0_0
- traitlets=5.1.1=pyhd8ed1ab_0
- typing_extensions=4.1.1=pyh06a4308_0
- tzdata=2022a=hda174b7_0
- unicodedata2=14.0.0=py39hb9d737c_1
- urllib3=1.26.8=pyhd3eb1b0_0
- wcwidth=0.2.5=pyh9f0ad1d_2
- webencodings=0.5.1=py_1
- wheel=0.37.1=pyhd3eb1b0_0
- xorg-kbproto=1.0.7=h7f98852_1002
- xorg-libice=1.0.10=h7f98852_0
- xorg-libsm=1.2.2=h470a237_5
- xorg-libx11=1.7.2=h7f98852_0
- xorg-libxau=1.0.9=h7f98852_0
- xorg-libxdmcp=1.1.3=h7f98852_0
- xorg-libxext=1.3.4=h7f98852_1
- xorg-libxrender=0.9.10=h7f98852_1003
- xorg-renderproto=0.11.1=h7f98852_1002
- xorg-xextproto=7.3.0=h7f98852_1002
- xorg-xproto=7.0.31=h7f98852_1007
- xz=5.2.5=h7b6447c_0
- zeromq=4.3.4=h9c3ff4c_1
- zipp=3.8.0=pyhd8ed1ab_0
- zlib=1.2.11=h7f8727e_4
- zstd=1.4.9=haebb681_0
由于pip的“特殊性和极为特殊的依赖性”,往往并不能一次性安装好,使用pip循环遍历多次安装:即依次安装不好,将安装失败的注释掉,接着安装剩下的。一遍循环完毕后,将安装好的注释掉,将上一次安装失败的解注释,继续安装。循环往复,直到安装好。
pip install -r requirements.txt
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
requirements.txt如下,
absl-py==1.0.0
antlr4-python3-runtime==4.9.3
astor==0.7.1
autograd==1.4
autograd-gamma==0.5.0
ax-platform==0.2.5.1
botorch==0.6.4
cachetools==5.0.0
captum==0.0.1
cilog==1.2.3
cloudpickle==2.0.0
dgllife==0.2.9
dive-into-graphs==0.2.0
torch-scatter==2.0.9
torch-sparse==0.6.13
torch-cluster==1.6.0
torch-spline_conv==1.2.1
torch-geometric==2.0.4
Traceback (most recent call last):
File "/opt/conda/envs/HIGH-PPI/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/opt/conda/envs/HIGH-PPI/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/root/.vscode-server/extensions/ms-python.python-2022.6.0/pythonFiles/lib/python/debugpy/__main__.py", line 45, in <module>
cli.main()
File "/root/.vscode-server/extensions/ms-python.python-2022.6.0/pythonFiles/lib/python/debugpy/../debugpy/server/cli.py", line 444, in main
run()
File "/root/.vscode-server/extensions/ms-python.python-2022.6.0/pythonFiles/lib/python/debugpy/../debugpy/server/cli.py", line 285, in run_file
runpy.run_path(target_as_str, run_name=compat.force_str("__main__"))
File "/opt/conda/envs/HIGH-PPI/lib/python3.9/runpy.py", line 268, in run_path
return _run_module_code(code, init_globals, run_name,
File "/opt/conda/envs/HIGH-PPI/lib/python3.9/runpy.py", line 97, in _run_module_code
_run_code(code, mod_globals, init_globals,
File "/opt/conda/envs/HIGH-PPI/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/home/yingmuzhi/high_ppi/HIGH-PPI/model_train.py", line 317, in <module>
main()
File "/home/yingmuzhi/high_ppi/HIGH-PPI/model_train.py", line 308, in main
train(batch, p_x_all, p_edge_all, model, graph, ppi_list, loss_fn, optimizer, device,
File "/home/yingmuzhi/high_ppi/HIGH-PPI/model_train.py", line 135, in train
output = model(batch, p_x_all, p_edge_all, graph.edge_index_got, train_edge_id)
File "/opt/conda/envs/HIGH-PPI/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
return forward_call(*input, **kwargs)
File "/home/yingmuzhi/high_ppi/HIGH-PPI/gnn_models_sag.py", line 170, in forward
embs = self.BGNN(x, edge, batch-1)
File "/opt/conda/envs/HIGH-PPI/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
return forward_call(*input, **kwargs)
File "/home/yingmuzhi/high_ppi/HIGH-PPI/gnn_models_sag.py", line 117, in forward
x = self.conv1(x, edge_index)
File "/opt/conda/envs/HIGH-PPI/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
return forward_call(*input, **kwargs)
File "/opt/conda/envs/HIGH-PPI/lib/python3.9/site-packages/torch_geometric/nn/conv/gcn_conv.py", line 210, in forward
edge_index, edge_weight = gcn_norm( # yapf: disable
File "/opt/conda/envs/HIGH-PPI/lib/python3.9/site-packages/torch_geometric/nn/conv/gcn_conv.py", line 66, in gcn_norm
if is_torch_sparse_tensor(edge_index):
File "/opt/conda/envs/HIGH-PPI/lib/python3.9/site-packages/torch_geometric/utils/sparse.py", line 68, in is_torch_sparse_tensor
if src.layout == torch.sparse_csc:
AttributeError: module 'torch' has no attribute 'sparse_csc'
cuda error
train gnn, train_num: 5328, valid_num: 1332
cuda:0
/opt/conda/envs/HIGH-PPI/lib/python3.9/site-packages/torch/cuda/__init__.py:145: UserWarning:
NVIDIA A40 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_61 sm_70 sm_75 compute_37.
If you want to use the NVIDIA A40 GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/
warnings.warn(incompatible_device_warn.format(device_name, capability, " ".join(arch_list), device_name))
使用查看cuda版本
import torch
print(torch.version.cuda)
动手深度学习纸质书: https://j.youzan.com/2E82KT(半价购书)
torch_geometric error
安装torch和对应cudatoolkit。
使用python3.9
conda create -n env_cp39_GNN python=3.9
参考 https://pytorch.org/get-started/previous-versions/
使用torch1.11和cuda10.2。需要注意的是1.11后的使用+指定tookkit,如torch==1.12.0+cu102
; 2.0以后的使用-指定toolkit,如pytorch==2.0.0 pytorch-cuda=11.7
。
# CUDA 10.2
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=10.2 -c pytorch