【发布时间】:2016-03-07 01:17:36
【问题描述】:
我目前正在实现卷积 RBM,为此我正在使用 Theano。
我当前的实现似乎很慢,分析表明这主要是由于 Gibbs 采样步骤造成的。 其实我是用Theano的shared randomstreams来生成多项式样本的。
但是,我发现 Theano 的随机流 here 的改进版本可以满足我的所有性能要求。
不幸的是,这个实验性随机生成器只支持二维矩阵,我必须将它用于 tensor4-object(4D-Matrix),因为这是 Theano 的 nnet conv2d 操作的结果。
您知道是否有一种从具有以下结构的 4D 矩阵中抽取样本的有效方法:
样本大小 x 1 x N x M
我想从其中一列(第三维)中绘制,给我这样的代码:
for sample in range(numSamples):
for col in range(numCols):
drawMultinomial(n=1, pvals=data[sample,0,col,:])
但是这段代码会很慢,我想在 GPU 上高效地完成。
因此,我们将不胜感激。
【问题讨论】:
标签: python theano sampling convolution