如何在theano中复制矩阵

时间:2016-02-12 12:03:14

标签: python numpy theano

嗨我是theano的新手,我需要[N x M * 4] dot [M x P],所以我希望第二个矩阵重复4次。

这样的东西
MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo

但在我的情况下,我想要

import numpy as np
import theano
import theano.tensor as T

x = T.fmatrix("x")

z = x.repeat(3, axis=0)

foo = theano.function([x], z)

a = np.array([[1, 2], [3, 4]]).astype("float32")

c = foo(a)

print c

[[ 1.  2.]
 [ 1.  2.]
 [ 1.  2.]
 [ 3.  4.]
 [ 3.  4.]
 [ 3.  4.]]

我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

您想要theano.tensor.tile

z2 = T.tile(x, (3, 1))  # repeat 3x in the first dimension, 1x in the second
bar = theano.function([x], z2)

print(bar(a))
# [[ 1.  2.]
#  [ 3.  4.]
#  [ 1.  2.]
#  [ 3.  4.]
#  [ 1.  2.]
#  [ 3.  4.]]

答案 1 :(得分:-3)

您可以使用numpy tile函数执行此操作:

>>> np.tile(np.array([[1, 2], [3, 4]]), (2, 1))
array([[1, 2],
       [3, 4],
       [1, 2],
       [3, 4]])

其中(2,1)是沿每个轴的重复次数。你的情况应该是(4,1)