Skip to content

Commit

Permalink
Set Hammersley as default sampling
Browse files Browse the repository at this point in the history
  • Loading branch information
lululxvi committed Jul 30, 2022
1 parent f82dc1a commit 26e2a98
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 26 deletions.
8 changes: 5 additions & 3 deletions deepxde/data/fpde.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def __init__(
meshtype="dynamic",
num_domain=0,
num_boundary=0,
train_distribution="Sobol",
train_distribution="Hammersley",
anchors=None,
solution=None,
num_test=None,
Expand Down Expand Up @@ -217,7 +217,7 @@ def __init__(
num_domain=0,
num_boundary=0,
num_initial=0,
train_distribution="Sobol",
train_distribution="Hammersley",
anchors=None,
solution=None,
num_test=None,
Expand Down Expand Up @@ -312,7 +312,9 @@ def train_points(self):
if self.train_distribution == "uniform":
tmp = self.geom.uniform_initial_points(self.num_initial)
else:
tmp = self.geom.random_initial_points(self.num_initial, random="Sobol")
tmp = self.geom.random_initial_points(
self.num_initial, random=self.train_distribution
)
X = np.vstack((tmp, X))
return X

Expand Down
4 changes: 3 additions & 1 deletion deepxde/data/func_constraint.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,9 @@ def train_next_batch(self, batch_size=None):
if self.dist_train == "log uniform":
self.train_x = self.geom.log_uniform_points(self.num_train, False)
elif self.dist_train == "random":
self.train_x = self.geom.random_points(self.num_train, "Sobol")
self.train_x = self.geom.random_points(
self.num_train, random=self.dist_train
)
else:
self.train_x = self.geom.uniform_points(self.num_train, False)
if self.anchors is not None:
Expand Down
2 changes: 1 addition & 1 deletion deepxde/data/ide.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def __init__(
kernel=None,
num_domain=0,
num_boundary=0,
train_distribution="Sobol",
train_distribution="Hammersley",
anchors=None,
solution=None,
num_test=None,
Expand Down
4 changes: 2 additions & 2 deletions deepxde/data/mf.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ def train_next_batch(self, batch_size=None):
else:
self.X_train = np.vstack(
(
self.geom.random_points(self.num_lo, "Sobol"),
self.geom.random_points(self.num_hi, "Sobol"),
self.geom.random_points(self.num_lo, random=self.dist_train),
self.geom.random_points(self.num_hi, random=self.dist_train),
)
)
y_lo_train = self.func_lo(self.X_train)
Expand Down
17 changes: 2 additions & 15 deletions deepxde/data/pde.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def __init__(
bcs,
num_domain=0,
num_boundary=0,
train_distribution="Sobol",
train_distribution="Hammersley",
anchors=None,
exclusions=None,
solution=None,
Expand All @@ -91,19 +91,6 @@ def __init__(

self.num_domain = num_domain
self.num_boundary = num_boundary
if train_distribution not in [
"uniform",
"pseudo",
"LHS",
"Halton",
"Hammersley",
"Sobol",
]:
raise ValueError(
"train_distribution == {} is not available choices.".format(
train_distribution
)
)
self.train_distribution = train_distribution
self.anchors = None if anchors is None else anchors.astype(config.real(np))
self.exclusions = exclusions
Expand Down Expand Up @@ -289,7 +276,7 @@ def __init__(
num_domain=0,
num_boundary=0,
num_initial=0,
train_distribution="Sobol",
train_distribution="Hammersley",
anchors=None,
exclusions=None,
solution=None,
Expand Down
10 changes: 6 additions & 4 deletions deepxde/geometry/sampler.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
__all__ = ["sample"]

from distutils.version import LooseVersion

import numpy as np
Expand All @@ -7,7 +9,7 @@


def sample(n_samples, dimension, sampler="pseudo"):
"""Generate random or quasirandom samples in [0, 1]^dimension.
"""Generate pseudorandom or quasirandom samples in [0, 1]^dimension.
Args:
n_samples (int): The number of samples.
Expand All @@ -17,13 +19,13 @@ def sample(n_samples, dimension, sampler="pseudo"):
sequence), or "Sobol" (Sobol sequence).
"""
if sampler == "pseudo":
return pseudo(n_samples, dimension)
return pseudorandom(n_samples, dimension)
if sampler in ["LHS", "Halton", "Hammersley", "Sobol"]:
return quasirandom(n_samples, dimension, sampler)
raise ValueError("f{sampler} sampler is not available.")
raise ValueError("f{sampler} sampling is not available.")


def pseudo(n_samples, dimension):
def pseudorandom(n_samples, dimension):
"""Pseudo random."""
# If random seed is set, then the rng based code always returns the same random
# number, which may not be what we expect.
Expand Down

0 comments on commit 26e2a98

Please sign in to comment.