Metode numpy.show_config()
(atau numpy.__config__.show()
) menampilkan informasi tentang tautan yang dikumpulkan pada waktu pembuatan. Output saya terlihat seperti ini. Saya pikir itu berarti saya menggunakan BLAS / LAPACK yang dikirimkan dengan Mac OS.
>>> import numpy as np
>>> np.show_config()
lapack_opt_info:
extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
extra_compile_args = ['-msse3']
define_macros = [('NO_ATLAS_INFO', 3)]
blas_opt_info:
extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
extra_compile_args = ['-msse3', '-I/System/Library/Frameworks/vecLib.framework/Headers']
define_macros = [('NO_ATLAS_INFO', 3)]
numpy.__config__
harus benar-benar menjadi API publik. Meskipun demikian, Anda memenangkan ronde ini, davost .lapack_opt_info
ditampilkan berarti numpy dikaitkan dengan Lapack?numpy.show_config()
, yang mungkin merupakan fungsi API publik berdasarkan tidak adanya mulai menggarisbawahi. Tapi itu tidak didokumentasikan secara online dan tidak memiliki dokumen, jadi tidak mengherankan bahwa itu sangat sulit ditemukan. Semoga mereka akan memperbaikinya.Yang Anda cari adalah ini: info sistem
Saya mengkompilasi numpy / scipy dengan atlas dan saya dapat memeriksanya dengan:
Periksa dokumentasi untuk lebih banyak perintah.
sumber
sysinfo.get_info('atlas')
tidak mengembalikan apa pun untuk saya kecualisysinfo.get_info('blas')
kembali{'include_dirs': ['/usr/local/include', '/usr/include', '/opt/local/include', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/include'], 'libraries': ['blas', 'blas'], 'library_dirs': ['/usr/lib']}
dansysinfo.get_info('lapack')
kembali{'language': 'f77', 'libraries': ['lapack', 'lapack'], 'library_dirs': ['/usr/lib']}
Apa artinya?Karena menggunakan versi yang dimuat secara dinamis, Anda bisa melakukan ini:
di mana
anyoftheCmodules.so
bisa, misalnyanumpy/core/_dotblas.so
, yang terhubung kelibblas.so
.sumber
numpy/core/_dotblas.so
? (lihat komentar di bawah, jawaban talonmies).so
file di sana. Cukup cari di dalam direktori NumPy (katakanlah, menggunakanfind /path/to/numpy -name "*.so"
). Beberapa dari mereka (_dotblas.so
, dilapack_lite.so
bawah Ubuntu yang dikompilasi, misalnya) memanfaatkan BLAS / LAPACK_dotblas.so
tidak ada lagi di numpy v1.10 dan yang lebih baru , tetapi Anda dapat memeriksamultiarray.so
numpy.__config__
objek kanonik saat runtime. (Lihat davost Ini sangat baik jawaban .)Anda dapat menggunakan alat ketergantungan tautan pemuat untuk melihat komponen kait level C dari bangunan Anda dan melihat apakah mereka memiliki ketergantungan eksternal pada blas dan pilihan Anda. Saya tidak berada di dekat kotak linux sekarang, tetapi pada mesin OS X Anda dapat melakukan ini di dalam direktori paket situs yang menyimpan instalasi:
gantikan
ldd
diotool
sistem gnu / Linux dan Anda harus mendapatkan jawaban yang Anda butuhkan.sumber
numpy/core/_dotblas.so
? (lihat komentar di bawah, jawaban Ricardos)_dotblas.so
yang merupakan pembungkus antarmuka untuk blas apa pun yang telah digunakan untuk membangun distribusi. Di windows akan dipanggil_dotblas.pyd
, tetapi fungsinya sama._dotblas.so
hanya dibangun jika Anda menggunakan[atlas]
bagian dalamsite.cfg
(dan perpustakaan BLAS yang diaktifkan CBLAS). Jadi, Anda harus menggunakannya, bahkan jika Anda tidak menggunakan ATLAS (kecuali ketika Anda menggunakan Intel MKL, yang memiliki bagian khusus)._dotblas.so
tidak ada lagi di numpy v1.10 dan yang lebih baru , tetapi Anda dapat memeriksamultiarray.so
Anda dapat menampilkan BLAS, LAPACK, tautan MKL menggunakan
show_config()
:Yang bagi saya memberikan output:
sumber
('HAVE_CBLAS', None)]
?HAVE_CBLAS
sedang didefinisikan tetapi tidak memiliki nilai (pikirkan C:)#define HAVE_CBLAS
. Tidak perlu nilai karena hanya digunakan sebagai bendera. Saya akan menafsirkannya sebagaiHAVE_CBLAS=True
. Jika Anda tidak memiliki CBLAS, Anda tidak akan memiliki tuple di sana.Jika Anda menginstal anaconda-navigator (di www.anaconda.com/anaconda/install/ untuk linux, Windows atau macOS) - blas, scipy dan numpy semuanya akan diinstal dan Anda dapat melihatnya dengan mengklik tab lingkungan di sisi kiri rumah navigator halaman (cari setiap direktori dalam urutan alfa). Menginstal anaconda penuh (tidak seperti miniconda atau paket individual) akan menangani menginstal banyak paket penting yang diperlukan untuk ilmu data.
sumber