2013-10-29 233 views
0

我想知道我們是否可以玩fit()方法sklearn.neural_network.BernoulliRBM以便能夠進行在線培訓。sklearn.neural_network.BernoulliRBM在線培訓?

據我所知,RBM需要minibatches作爲輸入但是,我沒有加載的所有訓練數據:

我想知道是否有可能做這樣的事情:

// X_train,Y_train有25000行和50000列的大ndarrays,不一定稀疏:它們尚未加載。他們只能在同一時間訪問一個minibatch(在我的定義中minibatch是100行和50000列的矩陣))的所有培訓完成後//

batchSize=100 
nIterations=25000/100 
idx1=0 
idx2=batchSize 
for i in range(nIterations): 

    rbm = BernoulliRBM(batch_size=100,random_state=0, verbose=True) 
    rbm.fit(X_train[idx1:idx2], learning_rate=0.1, n_components=2, n_iter=10, 
    random_state=None, verbose=False) 
    idx1=idx1+batchSize 
    idx2=idx2+batchSize 

idx1=0 
idx2=batchSize 
for i in range(nIterations): 

rbm.transform(X_train[idx1:idx2]) 
idx1=idx1+batchSize 
idx2=idx2+batchSize 

我數據庫和編程的一般知識並不是很好。我一直堅持這個幾個星期,並想知道我是否可以解決它。

回答

1

用於增量學習的公共API還沒有用於BernoulliRBM類。有一個開放的issue here