mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-21 13:44:15 +08:00
Make NumPy dependency dynamic (#52794)
Summary: Move NumPy initialization from `initModule()` to singleton inside `torch::utils::is_numpy_available()` function. This singleton will print a warning, that NumPy integration is not available, rather than fails to import torch altogether. The warning be printed only once, and will look something like the following: ``` UserWarning: Failed to initialize NumPy: No module named 'numpy.core' (Triggered internally at ../torch/csrc/utils/tensor_numpy.cpp:66.) ``` This is helpful if PyTorch was compiled with wrong NumPy version, of NumPy is not commonly available on the platform (which is often the case on AARCH64 or Apple M1) Test that PyTorch is usable after numpy is uninstalled at the end of `_test1` CI config. Pull Request resolved: https://github.com/pytorch/pytorch/pull/52794 Reviewed By: seemethere Differential Revision: D26650509 Pulled By: malfet fbshipit-source-id: a2d98769ef873862c3704be4afda075d76d3ad06
This commit is contained in:
committed by
Facebook GitHub Bot
parent
9a03e65456
commit
a0a1bb074b
@ -71,9 +71,6 @@
|
||||
#include <callgrind.h>
|
||||
#endif
|
||||
|
||||
#define WITH_NUMPY_IMPORT_ARRAY
|
||||
#include <torch/csrc/utils/numpy_stub.h>
|
||||
|
||||
namespace py = pybind11;
|
||||
|
||||
PyObject* module;
|
||||
@ -1004,9 +1001,6 @@ Call this whenever a new thread is created in order to propagate values from
|
||||
ASSERT_TRUE(set_module_attr("DisableTorchFunction", (PyObject*)THPModule_DisableTorchFunctionType(), /* incref= */ false));
|
||||
torch::set_disabled_torch_function_impl(PyObject_GetAttrString(module, "_disabled_torch_function_impl"));
|
||||
ASSERT_TRUE(torch::disabled_torch_function_impl() != nullptr);
|
||||
#ifdef USE_NUMPY
|
||||
if (_import_array() < 0) return nullptr;
|
||||
#endif
|
||||
return module;
|
||||
END_HANDLE_TH_ERRORS
|
||||
}
|
||||
|
Reference in New Issue
Block a user