test_norbs: added mode hidden gaussian - hidden binary

This commit is contained in:
2026-01-04 16:06:41 +01:00
parent 6546c37657
commit 73d4486fb7
+12 -6
View File
@@ -6,9 +6,16 @@ from rbm.entity import Entity, EntityParams, TrainingParams
from rbm.matrix import Mat, np, read_armadillo
class TestModel(Model):
def __init__(self, name: str, work_dir: str = '.'):
def __init__(self, name: str, work_dir: str = '.', do_gaussian_hidden=False):
super().__init__(name, work_dir)
self.unit1 = Entity((96*96, 16), EntityParams(do_gaussian_visible=True, do_gaussian_hidden=False), TrainingParams(learning_rate=0.000001, momentum=0.9, num_epochs=1000))
if do_gaussian_hidden:
# Hidden gaussian
self.unit1 = Entity((96*96, 16), EntityParams(do_gaussian_visible=True, do_gaussian_hidden=True), TrainingParams(learning_rate=0.00001, momentum=0.9, num_epochs=1000, do_rao_blackwell=True))
else:
# Hidden binary
self.unit1 = Entity((96 * 96, 16), EntityParams(do_gaussian_visible=True, do_gaussian_hidden=False),
TrainingParams(learning_rate=0.000002, momentum=0.9, num_epochs=1000))
def forward(self, x: Mat):
x = self.unit1.forward(x)
@@ -24,20 +31,19 @@ if __name__ == "__main__":
prj_root = "/home/jens/work/repos/Rbm"
# Create model
model = TestModel("norb_small_16h_v2", "results")
model = TestModel(prj_name, "results")
# Init state
model.init(0.01)
# load state
model.load()
# model.load()
# Load train data
train_batch = read_armadillo(os.path.join(prj_root, f"{prj_name}.training.dat"))
test_batch = train_batch
# Load test data
#test_batch = read_armadillo(os.path.join(prj_root, f"{prj_name}.test.dat"))
test_batch = read_armadillo(os.path.join(prj_root, f"{prj_name}.test.dat"))
# Train
model.train(train_batch)