创建环境模块以在 hpc 节点上使用 opencv-python

create environment module to work with opencv-python on hpc nodes

我的任务是通过 Torque 在 HPC 节点上使用 tensorflow 和 opencv-python 训练神经网络。

我用 python virtualenv 制作了 privatemodule,并在其中安装了 tensorflow 和 opencv-python 模块。

在节点中我可以加载我的 python 模块。 但是当我尝试 运行 训练脚本时,出现以下错误:

Traceback (most recent call last): File "tensornetwork/train_user_ind_single_subj2.py", line 16, in <module> from reader_user_ind_single_subj import MyData File "/home/trig/tensornetwork/reader_user_ind_single_subj.py", line 10, in <module> import cv2 File "/home/trig/privatemodules/venv_python275/lib/python2.7/site-packages/cv2/__init__.py", line 4, in <module> from .cv2 import * ImportError: libSM.so.6: cannot open shared object file: No such file or directory

训练脚本可以 运行 在头节点上,但不能在计算节点上。

您能否建议如何修改我的模块或添加新模块以使用 Torque 在计算节点上进行训练 运行。

Python 模块使用系统库(即 libSM.so.6 :对 freedesktop.org 版本 X 的库支持)存在于头节点上,但不存在于计算节点上节点(这并不奇怪)

您可以:

  • 要求管理员通过程序包管理器在计算节点上全系统安装该库;
  • 或者在头节点(大概在/usr/lib或者/usr/lib64或者siblings)找到文件,复制到/home/trig/privatemodules/venv_python275/lib/python2.7/site-packages/cv2/,Python应该可以找到.如果 Python 仍然找不到它,请在加载模块后在您的 Torque 脚本中 运行 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/trig/privatemodules/venv_python275/lib/python2.7/site-packages/cv2/
  • 或者您可以搜索 libSM 的源代码并在您的主目录中编译它