当前位置:  开发笔记 > 编程语言 > 正文

关于Theano中扁平化功能的澄清

如何解决《关于Theano中扁平化功能的澄清》经验,为你挑选了1个好方法。



1> Daniel Rensh..:

numpy不支持只展平一些尺寸,但Theano确实如此.

所以如果a是一个numpy数组,a.flatten(2)没有任何意义.它运行没有错误,但只是因为2它作为order参数传递,似乎导致numpy坚持默认顺序C.

Theano flatten 确实支持轴规格.文档解释了它的工作原理.

Parameters:
    x (any TensorVariable (or compatible)) – variable to be flattened
    outdim (int) – the number of dimensions in the returned variable

Return type:
    variable with same dtype as x and outdim dimensions

Returns:
    variable with the same shape as x in the leading outdim-1 dimensions,
    but with all remaining dimensions of x collapsed into the last dimension.

例如,如果我们用展平(x,outdim = 2)展平形状(2,3,4,5)的张量,那么我们将具有相同的(2-1 = 1)前导尺寸(2,),其余尺寸已折叠.因此,此示例中的输出将具有形状(2,60).

一个简单的Theano演示:

import numpy
import theano
import theano.tensor as tt


def compile():
    x = tt.tensor3()
    return theano.function([x], x.flatten(2))


def main():
    a = numpy.arange(2 * 3 * 4).reshape((2, 3, 4))
    f = compile()
    print a.shape, f(a).shape


main()

版画

(2L, 3L, 4L) (2L, 12L)

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有