2013-10-29 201 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