import numpy as np META={'name':'conditional_bayesian_potential','domain':'probabilistic-inverse','description':'Noisy inverse problem with a two-component latent prior and normalized conditional posterior potential.'} def get_dataset(seed,n_train=400,n_test=400): def sample(n,rng): z=rng.normal(size=n) x=np.where(rng.random(n)<.55,-.9+.55*z,.9+.38*z) y=x+.48*rng.normal(size=n) return y[:,None].astype('float32'),x[:,None].astype('float32') xtr,ytr=sample(n_train,np.random.default_rng(int(seed))) xte,yte=sample(n_test,np.random.default_rng(int(seed)+10000)) return {'xtr':xtr,'ytr':ytr,'xte':xte,'yte':yte,'task':'regression','metric':'mse','out_dim':1,'input_shape':(1,)}