TL.DR。是否有theano.tensor.nnet.neighbours.images2neibs
的三维友好实现?
我想使用接收nxnxn图像的神经网络对体积(NxNxN)进行体素分类,其中N> n。为了对体积中的每个体素进行分类,我必须遍历每个体素。对于每次迭代,我获得并传递邻域体素作为神经网络的输入。这只是一个滑动窗口操作,操作是神经网络。
虽然我的神经网络是在Theano中实现的,但是滑动窗口的实现是python / numpy。由于这不是纯粹的Theano操作,因此分类需要永久(> 3小时)来对一个体积中的所有体素进行分类。对于2d滑动窗口操作,Theano有一个辅助方法theano.tensor.nnet.neighbours.images2neibs
,是否有类似的三维图像实现?
编辑: 对于n-d滑动窗口,现有numpy解决方案(1和2),都使用np.lib.stride_tricks.as_strided来提供“滑动窗口的视图”,从而防止内存问题。在我的实现中,滑动窗口数组从numpy(Cython)传递到Python然后传递到Theano。为了提高性能,我可能不得不绕过Python。
答案 0 :(得分:0)