Я пытаюсь внедрить автоэнкодеры с RBM для уменьшения размерности из этой ссылки . Однако вместо RBM, используемого в этой ссылке, я пытаюсь интегрировать GBRBM, как описано в этой ссылке - https://github.com/meownoid/tensorfow-rbm/tree/master/tfrbm
пока мой код выглядит так -
gbrbm1 = GBRBM(n_visible=222, n_hidden=128, learning_rate=0.01, momentum=0.95)
gbrbm2 = GBRBM(n_visible=128, n_hidden=64, learning_rate=0.01, momentum=0.95)
gbrbm3 = GBRBM(n_visible=64, n_hidden=32, learning_rate=0.01, momentum=0.95)
gbrbm4 = GBRBM(n_visible=32, n_hidden=2, learning_rate=0.01, momentum=0.95)
#GBRBM train
errs1 = gbrbm1.fit(train_x, n_epoches=50, batch_size=32)
tr1=gbrbm1.transform(train_x)
gbrbm1.save_weights('./out/rbmw1.chp','w1')
##########
errs2= gbrbm2.fit(tr1, n_epoches=50, batch_size=32)
tr1=gbrbm1.transform(train_x)
tr2=gbrbm2.transform(tr1)
gbrbm2.save_weights('./out/rbmw2.chp','w2')
###############
errs3= gbrbm3.fit(tr2, n_epoches=50, batch_size=32)
tr1=gbrbm1.transform(train_x)
tr2=gbrbm2.transform(tr1)
tr3=gbrbm3.transform(tr2)
gbrbm3.save_weights('./out/rbmw3.chp','w3')
Моя модель автоэнкодера выглядит так -
autoencoder = AutoEncoder(222, [128, 64, 32, 2], [['rbmw1', 'rbmhb1'],
['rbmw2', 'rbmhb2'],
['rbmw3', 'rbmhb3'],
['rbmw4', 'rbmhb4']], tied_weights=False)
Но при попытке загрузить веса RBM следующим образом -
autoencoder.load_weights('./out/rbmw1.chp')
Я сталкиваюсь со следующей ошибкой -
Not found: Key rbmhb1 not found in checkpoint
Было бы очень полезно, если бы кто-то помог мне понять, в чем здесь проблема.