使用 sklearn.neural_network.BernoulliRBM 进行在线培训?
Posted
技术标签:
【中文标题】使用 sklearn.neural_network.BernoulliRBM 进行在线培训?【英文标题】:online training with sklearn.neural_network.BernoulliRBM? 【发布时间】:2013-10-29 17:48:23 【问题描述】:我想知道我们是否可以使用 fit() 方法 sklearn.neural_network.BernoulliRBM 来进行在线培训。
我知道 RBM 将小批量作为输入,但是我没有加载所有训练数据:
我想知道是否可以这样做:
//X_train,Y_train 具有 25000 行和 50000 列的大 ndarray,不一定是稀疏的:它们还没有加载。一次只能访问一个 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】:BernoulliRBM
类还没有用于增量学习的公共 API。有一个开放的issue here。
【讨论】:
以上是关于使用 sklearn.neural_network.BernoulliRBM 进行在线培训?的主要内容,如果未能解决你的问题,请参考以下文章
将 sklearn.neural_network.MLPClassifier 与 ndarray 的 csr_matrices 一起使用