lib/rumale/decomposition/nmf.rb in rumale-0.11.0 vs lib/rumale/decomposition/nmf.rb in rumale-0.12.0
- old
+ new
@@ -111,11 +111,12 @@
def partial_fit(x, update_comps = true)
# initialize some variables.
n_samples, n_features = x.shape
scale = Math.sqrt(x.mean / @params[:n_components])
- @components = Rumale::Utils.rand_uniform([@params[:n_components], n_features], @rng) * scale if update_comps
- coefficients = Rumale::Utils.rand_uniform([n_samples, @params[:n_components]], @rng) * scale
+ sub_rng = @rng.dup
+ @components = Rumale::Utils.rand_uniform([@params[:n_components], n_features], sub_rng) * scale if update_comps
+ coefficients = Rumale::Utils.rand_uniform([n_samples, @params[:n_components]], sub_rng) * scale
# optimization.
@params[:max_iter].times do
# update
if update_comps
nume = coefficients.transpose.dot(x)