All notable changes to this project will be documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Move functionality from
CenteredRBMs.jl
to this package.
- Move functionality from
StandardizedRestrictedBoltzmannMachines.jl
to this package.
- Move functionality from
RestrictedBoltzmannMachinesHDF5.jl
to this package, through the Extensions mechanism.
- Move functionality from
CudaRBMs.jl
to this package, through the Extensions mechanism. - Move
PottsGumbel
to this package.
- Use
default_rng
in place ofGLOBAL_RNG
, which fixes an issue with CUDA e84438a.
- Compat with Optimisers v0.3.
- Patch CUDA issue with Potts due to https://github.com/JuliaGPU/CUDA.jl/issues/1957.
callback
now receivesstate
too.
visible_cgf
,free_energy_h
,free_energy_v
, and gradients.
- BREAKING:
rescale_hidden!
returnstrue
orfalse
depending on whether the hidden units were rescaled or not.
- Initialization from data for dReLU, pReLU, xReLU.
- Fix mirror.
- Allow division of ∂RBM by a scalar.
- Always convert to weights eltype in ∂interaction_energy (previously, converted only in some cases).
- Convert to weights eltype in ∂interaction_energy (fix #10).
- Fix batch weight correction (https://github.com/cossio/RestrictedBoltzmannMachines.jl/commit/355b5faae78d268f083787c7f92a0e995eee6116).
- Close CUDA issue #20.
- This CHANGELOG file.
- Rescale weights to norm 1, instead of hidden unit activities to unit variances. This is a simpler way to settle the scale degeneracy between weights and hidden unit activities for continuous hidden units. Commit here.
- Introduce
rescale_weights!(rbm)
to normalize weights attached to each hidden units. - Now
pcd!(...; rescale=true, ...)
usesrescale_weights!
, instead of scaling hidden unit activities to unit variances. - BREAKING: Removed
ρh
,ϵh
keyword arguments frompcd!
, which used to control the tracking of hidden unit variances during training. - BREAKING:
grad2var
has been removed.
- Introduce
- Allow passing
ps
,state
topcd!
to control which parameters are optimized. Nowpcd!
returnsstate, ps
, which can be breaking. Commit here.
- Release v1.0.0.
- Now
pcd!(...; iters=n, ...)
performsn
gradient updates. This replaces theepochs
setting. pcd
now uses the Optimisers framework instead of Flux. In particular,optim
expects aOptimisers.AbstractRule
.