我正在使用 Jetson Nano,并且我已经尝试重新安装tensorflow(尝试了不同版本)和numpy(也尝试了不同版本)。我正在使用
pip3
命令,因为我使用的是 python3
(版本 3.6.9)。
降级一切都不起作用,因为 Keras 需要tensorflow >2.2
我还尝试使用 --force-reinstall
标志重新安装 scikit-learn。
因为它可能会有所帮助,所以这是我在尝试运行程序时收到的完整错误消息:
Traceback (most recent call last):
File "/home/nano/.local/lib/python3.6/site-packages/sklearn/__check_build/__init__.py", line 44, in <module>
from ._check_build import check_build # noqa
ImportError: /home/nano/.local/lib/python3.6/site-packages/sklearn/__check_build/../../scikit_learn.libs/libgomp-d22c30c5.so.1.0.0: cannot allocate memory in static TLS block
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "LSTMMVMSTSF.py", line 4, in <module>
import sklearn
File "/home/nano/.local/lib/python3.6/site-packages/sklearn/__init__.py", line 81, in <module>
from . import __check_build # noqa: F401
File "/home/nano/.local/lib/python3.6/site-packages/sklearn/__check_build/__init__.py", line 46, in <module>
raise_build_error(e)
File "/home/nano/.local/lib/python3.6/site-packages/sklearn/__check_build/__init__.py", line 41, in raise_build_error
%s""" % (e, local_dir, ''.join(dir_content).strip(), msg))
ImportError: /home/nano/.local/lib/python3.6/site-packages/sklearn/__check_build/../../scikit_learn.libs/libgomp-d22c30c5.so.1.0.0: cannot allocate memory in static TLS block
___________________________________________________________________________
Contents of /home/nano/.local/lib/python3.6/site-packages/sklearn/__check_build:
__init__.py _check_build.cpython-36m-aarch64-linux-gnu.so__pycache__
setup.py
___________________________________________________________________________
It seems that scikit-learn has not been built correctly.
If you have installed scikit-learn from source, please do not forget
to build the package before using it: run `python setup.py install` or
`make` in the source directory.
If you have used an installer, please check that it is suited for your
Python version, your operating system and your platform.
编辑:我忘记添加有关 scikit-learn 安装的信息。我用过
sudo pip3 install scikit-learn
。该期的日志:
sudo pip3 install scikit-learn Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Collecting scikit-learn
Downloading scikit_learn-0.24.2-cp36-cp36m-manylinux2014_aarch64.whl (24.0 MB)
|████████████████████████████████| 24.0 MB 20.5 MB/s
Requirement already satisfied: threadpoolctl>=2.0.0 in /home/nano/.local/lib/python3.6/site-packages (from scikit-learn) (2.1.0)
Requirement already satisfied: joblib>=0.11 in /home/nano/.local/lib/python3.6/site-packages (from scikit-learn) (1.0.1)
Requirement already satisfied: numpy>=1.13.3 in /home/nano/.local/lib/python3.6/site-packages (from scikit-learn) (1.19.0)
Requirement already satisfied: scipy>=0.19.1 in /home/nano/.local/lib/python3.6/site-packages (from scikit-learn) (1.5.4)
Installing collected packages: scikit-learn
Successfully installed scikit-learn-0.24.2
对于那些无法更改导入顺序的人(例如,使用sklearn的库会引发错误),我通过将环境变量
LD_PRELOAD
设置为libgomp-d22c30c5.so.1.0.0
的路径解决了这个问题。
export LD_PRELOAD='/PATH/TO/libgomp-d22c30c5.so.1.0.0'
并再次执行程序。
您需要安装特定于aarch64架构的tensorflow whl。 nvidia 在以下位置提供了适用于 aarch64 的预构建张量流二进制文件
https://developer.download.nvidia.com/compute/redist/jp/v44/
此链接适用于 jetpack 4.4 (v44)。根据您使用的jetpack版本更新链接。
当我在一个 Python Django 项目中使用另一个库“sentence_transformer”时,我遇到了这个问题。 对我来说,解决方案是在manage.py文件顶部导入SentenceTransformer