-
Notifications
You must be signed in to change notification settings - Fork 137
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the issue:
Can't compile a pymc model.
Reproducable code example:
import nutpie
import pandas
data = pd.read_csv(pm.get_data("radon.csv"))
data["log_radon"] = data["log_radon"].astype(np.float64)
county_idx, counties = pd.factorize(data.county)
coords = {"county": counties, "obs_id": np.arange(len(county_idx))}
# Create a simple hierarchical model for the radon dataset
with pm.Model(coords=coords, check_bounds=False) as pymc_model:
intercept = pm.Normal("intercept", sigma=10)
# County effects
raw = pm.ZeroSumNormal("county_raw", dims="county")
sd = pm.HalfNormal("county_sd")
county_effect = pm.Deterministic("county_effect", raw * sd, dims="county")
# Global floor effect
floor_effect = pm.Normal("floor_effect", sigma=2)
# County:floor interaction
raw = pm.ZeroSumNormal("county_floor_raw", dims="county")
sd = pm.HalfNormal("county_floor_sd")
county_floor_effect = pm.Deterministic(
"county_floor_effect", raw * sd, dims="county"
)
mu = (
intercept
+ county_effect[county_idx]
+ floor_effect * data.floor.values
+ county_floor_effect[county_idx] * data.floor.values
)
sigma = pm.HalfNormal("sigma", sigma=1.5)
pm.Normal(
"log_radon", mu=mu, sigma=sigma, observed=data.log_radon.values, dims="obs_id"
)
compiled_model = nutpie.compile_pymc_model(pymc_model)
Error message:
ERROR (pytensor.graph.rewriting.basic): Rewrite failure due to: constant_folding
ERROR (pytensor.graph.rewriting.basic): node: ExpandDims{axis=0}(0.0)
ERROR (pytensor.graph.rewriting.basic): TRACEBACK:
ERROR (pytensor.graph.rewriting.basic): Traceback (most recent call last):
File "/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/graph/rewriting/basic.py", line 1922, in process_node
replacements = node_rewriter.transform(fgraph, node)
File "/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/graph/rewriting/basic.py", line 1086, in transform
return self.fn(fgraph, node)
File "/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/tensor/rewriting/basic.py", line 1160, in constant_folding
return unconditional_constant_folding.transform(fgraph, node)
File "/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/graph/rewriting/basic.py", line 1086, in transform
return self.fn(fgraph, node)
File "/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/tensor/rewriting/basic.py", line 1109, in unconditional_constant_folding
thunk = node.op.make_thunk(node, storage_map, compute_map, no_recycling=[])
File "/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/link/c/op.py", line 125, in make_thunk
return self.make_c_thunk(node, storage_map, compute_map, no_recycling)
File "/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/link/c/op.py", line 84, in make_c_thunk
outputs = cl.make_thunk(
File "/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/link/c/basic.py", line 1185, in make_thunk
cthunk, module, in_storage, out_storage, error_storage = self.__compile__(
File "/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/link/c/basic.py", line 1102, in __compile__
thunk, module = self.cthunk_factory(
File "/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/link/c/basic.py", line 1626, in cthunk_factory
module = cache.module_from_key(key=key, lnk=self)
File "/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/link/c/cmodule.py", line 1251, in module_from_key
module = lnk.compile_cmodule(location)
File "/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/link/c/basic.py", line 1527, in compile_cmodule
module = c_compiler.compile_str(
File "/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/link/c/cmodule.py", line 2678, in compile_str
raise CompileError(
pytensor.link.c.exceptions.CompileError: Compilation failed (return status=1):
/Users/eliotcarlson/miniforge3/envs/nutpie-dev/bin/clang++ -dynamiclib -g -O3 -fno-math-errno -Wno-unused-label -Wno-unused-variable -Wno-write-strings -Wno-c++11-narrowing -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -m64 -fPIC -undefined dynamic_lookup -ld64 -I/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/numpy/_core/include -I/Users/eliotcarlson/miniforge3/envs/nutpie-dev/include/python3.10 -I/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/link/c/c_code -L/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib -fvisibility=hidden -o /Users/eliotcarlson/.pytensor/compiledir_macOS-15.5-x86_64-i386-64bit-i386-3.10.18-64/tmphf1ukq9q/mc5d88e8dc18faeba04f18b2ae819007d68babe6da825f68b5dc6bede633fc176.so /Users/eliotcarlson/.pytensor/compiledir_macOS-15.5-x86_64-i386-64bit-i386-3.10.18-64/tmphf1ukq9q/mod.cpp
ld: -lto_library library filename must be 'libLTO.dylib'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
PyTensor version information:
pt version: 2.31.6 ; python 3.10.18 ; macOS Sequoia 15.5 ; nutpie 0.14.2 ; pymc 5.23.0 ; pytensor installed via nutpie.
cxx (<class 'str'>)
Value: /Users/eliotcarlson/miniforge3/envs/nutpie-dev/bin/clang++
linker ({'vm_nogc', 'py', 'c|py', 'cvm_nogc', 'vm', 'c', 'c|py_nogc', 'cvm'})
Value: cvm
/Users/eliotcarlson/miniforge3/envs/nutpie-dev/lib/python3.10/site-packages/pytensor/link/c/cmodule.py:2968: UserWarning: PyTensor could not link to a BLAS installation.
Context for the issue:
Not urgent. Just documenting so it's there.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working