improved context update for JayRnn

This commit is contained in:
2026-06-03 22:58:18 +02:00
parent 2701daf1c4
commit 3a41014d50
+8 -5
View File
@@ -81,12 +81,11 @@ class RnnModel(Model):
unit = Entity((WIN*vocab_size() + H_SIZE, H_SIZE), EntityParams(do_gaussian_visible=False, do_gaussian_hidden=False), TrainingParams(learning_rate=0.001, momentum=0.9, num_epochs=1000), enable_training=True)
self.units.append(unit)
def train(self, batch: Mat, status: Status = None):
c = np.zeros([len(batch), H_SIZE])
def train(self, vc: Mat, status: Status = None):
for i, unit in enumerate(self.units):
vc = concat(batch, c)
train(unit, vc, status)
c = unit.forward(vc)
# Update context portion of vc
vc[:, WIN*vocab_size():] = unit.forward(vc)
def forward_step(self, v_curr: Mat):
c = np.zeros([1, H_SIZE])
@@ -108,6 +107,10 @@ if __name__ == "__main__":
model = RnnModel(name='JayRnn', work_dir='results')
model.init(0.01)
model.load()
model.train(batch, status=Status())
# vc contains vis + context
# context will be updated after training
vc = concat(batch, np.zeros([len(batch), H_SIZE]))
model.train(vc, status=Status())
model.save()