我目前正在實現一個卷積RBM,我正在使用Theano。使用Theano繪製多項式樣本
我目前的實現似乎很慢,分析表明它主要是由於吉布斯採樣步驟。實際上,我使用Theano的shared randomstreams來生成多項式樣本。
但是,我發現了Theano的隨機流here的改進版本,它可以滿足我所有的性能要求。
不幸的是,這個實驗性的隨機發生器只支持二維矩陣,我必須用它作爲張量4-對象(4D矩陣),因爲這是Theano的nnet conv2d操作的結果。
你知道,如果有從具有以下結構的四維矩陣得出樣品的有效途徑:
的採樣大小×1×N×M的
,我想從一個畫列(第三個維度),給我這樣的代碼:
for sample in range(numSamples):
for col in range(numCols):
drawMultinomial(n=1, pvals=data[sample,0,col,:])
但這代碼將是非常緩慢的,我想高效的GPU做到這一點。
所以任何幫助將不勝感激。