Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EOF Error with pymc-bart on m2 mac #120

Open
jacobpascalcoblentz opened this issue Aug 22, 2023 · 2 comments
Open

EOF Error with pymc-bart on m2 mac #120

jacobpascalcoblentz opened this issue Aug 22, 2023 · 2 comments

Comments

@jacobpascalcoblentz
Copy link

Bug
Seems to be an error with spawning processes for sampling – full error below. Annoyingly, sometimes it samples, but most of the time it fails out, which makes me question exactly why it’s happening.

Following the example.

coal = np.loadtxt(pm.get_data("coal.csv"))
years = int(coal.max() - coal.min())
bins = years // 4
hist, x_edges = np.histogram(coal, bins=bins)
# compute the location of the centers of the discretized data
x_centers = x_edges[:-1] + (x_edges[1] - x_edges[0]) / 2
# xdata needs to be 2D for BART
x_data = x_centers[:, None]
# express data as the rate number of disaster per year
y_data = hist
with pm.Model() as model_coal:
    μ_ = pmb.BART("μ_", X=x_data, Y=np.log(y_data), m=20)
    μ = pm.Deterministic("μ", pm.math.exp(μ_))
    y_pred = pm.Poisson("y_pred", mu=μ, observed=y_data)
    idata_coal = pm.sample(random_seed=94122)

returns the following error:

EOFError                                  Traceback (most recent call last)
/Users/jp/Dropbox/Projects/pymc_example.py in line 13
     61 y_data = hist
     62 with pm.Model() as model_coal:
---> 63     μ_ = pmb.BART("μ_", X=x_data, Y=np.log(y_data), m=20)
     64     μ = pm.Deterministic("μ", pm.math.exp(μ_))
     65     y_pred = pm.Poisson("y_pred", mu=μ, observed=y_data)

File ~/miniconda3/envs/pymc/lib/python3.10/site-packages/pymc_bart/bart.py:139, in BART.__new__(cls, name, X, Y, m, alpha, beta, response, split_prior, split_rules, separate_trees, **kwargs)
    134 if response in ["linear", "mix"]:
    135     warnings.warn(
    136         "Options linear and mix are experimental and still not well tested\n"
    137         + "Use with caution."
    138     )
--> 139 manager = Manager()
    140 cls.all_trees = manager.list()
    142 X, Y = preprocess_xy(X, Y)

File ~/miniconda3/envs/pymc/lib/python3.10/multiprocessing/context.py:57, in BaseContext.Manager(self)
     55 from .managers import SyncManager
     56 m = SyncManager(ctx=self.get_context())
---> 57 m.start()
     58 return m
...
--> 383         raise EOFError
    384     else:
    385         raise OSError("got end of file during message")

Session info is here:

Session info is here:

{‘commit_hash’: ‘f11276427’,
‘commit_source’: ‘installation’,
‘default_encoding’: ‘utf-8’,
‘ipython_path’: ‘/Users/jp/miniconda3/envs/pymc/lib/python3.10/site-packages/IPython’,
‘ipython_version’: ‘8.14.0’,
‘os_name’: ‘posix’,
‘platform’: ‘macOS-13.3-arm64-arm-64bit’,
‘sys_executable’: ‘/Users/jp/miniconda3/envs/pymc/bin/python’,
‘sys_platform’: ‘darwin’,
‘sys_version’: ‘3.10.12 (main, Jul 5 2023, 15:02:25) [Clang 14.0.6 ]’}
@fonnesbeck
Copy link
Member

I am starting to get these as well, particularly after updating to macOS 14.1

@aloctavodia
Copy link
Member

I have no access to a Mac computer so, not sure how to test this. That this helps tomopy/tomopy#555

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants