TL.DR。是否有theano.tensor.nnet.neighbours.images2neibs
的三维友好实现
我想使用神经网络对体积进行体素分类( nxnxn ),该神经网络接收nxnxn图像,其中N>n。要对体积中的每个体素进行分类,我必须迭代每个体素。对于每次迭代,我获得邻域体素并将其作为输入传递给神经网络。这只是一个简单的滑动窗口操作,该操作是神经网络。
虽然我的神经网络是用Theano实现的,但滑动窗口实现是用python/numpy实现的。由于这不是纯粹的Theano操作,因此分类需要永远(> 3小时)来将所有体素分类到一个体积中。对于二维滑动窗口操作,Theano有一个辅助方法,theano.tensor.nnet.neighbours.images2neibs
,对于三维图像有类似的实现吗?
编辑:现有的n-d滑动窗口的numpy解决方案(1和2),都使用np.lib.stride_tricks.as_strided
来提供“滑动窗口的视图”,从而防止内存问题。在我的实现中,滑动窗口数组从numpy (Cython)传递到Python,然后传递给Theano。为了提高性能,我可能不得不绕过Python。
发布于 2018-01-02 05:05:52
正如OP所提到的,sklearn_theano.feature_extraction.overfeat中的Eickenberg和Kastner的OverfeatTransformer实用程序非常适合这个操作。
https://stackoverflow.com/questions/35691947
复制相似问题