如何在张量流keras中重复矩阵?

时间:2019-08-12 16:05:42

标签: python tensorflow keras

我正在尝试在keras的tensorflow中重写以下python代码。但是,我在tensorflow keras中找不到np.matlib.repmat等效项。有人可以帮我解决这个问题吗?

index = np.arange(0,256);
index_transpose = index.reshape(256,1)

I = numpy.matlib.repmat(index_transpose,1,256).reshape(256,256);
J = numpy.matlib.repmat(index,256,1);

I和J的形状应为: I形状:(256,256),J形状:(256,256)

2 个答案:

答案 0 :(得分:2)

您可以这样做:

index = K.arange(256) #[0,1,2...,255]

I = K.stack([index]*256, axis=-1) 
J = K.stack([index]*256, axis= 0)

位置:

I = [0,0,0....]
    [1,1,1,....]
    ...
    [255,.....]

J = [0,1,2,3...,255]
    [0,1,2,3...,255]
    .....

答案 1 :(得分:0)

您可以这样做:

I = tf.tile(tf.reshape(index), [-1, 1]), [1, len(index)])
# [[0 0 0 0 0]
#  [1 1 1 1 1]
#  [2 2 2 2 2]
#  [3 3 3 3 3]
#  [4 4 4 4 4]]
J = tf.transpose(I)
# [[0 1 2 3 4]
#  [0 1 2 3 4]
#  [0 1 2 3 4]
#  [0 1 2 3 4]
#  [0 1 2 3 4]]

假设index = np.arange(0,5)用于测试。