【发布时间】:2017-09-17 22:41:39
【问题描述】:
我正在尝试在 tensorflow 中定义一个自定义操作,其中有一次我需要构造一个矩阵 (z),该矩阵将包含两个矩阵的行对的所有组合的总和 (x 和 @ 987654323@)。一般来说x和y的行数是动态的。
在 numpy 中相当简单:
import numpy as np
from itertools import product
rows_x = 4
rows_y = 2
dim = 2
x = np.arange(dim*rows_x).reshape(rows_x, dim)
y = np.arange(dim*rows_y).reshape(rows_y, dim)
print('x:\n{},\ny:\n{}\n'.format(x, y))
z = np.zeros((rows_x*rows_y, dim))
print('for loop:')
for i, (x_id, y_id) in enumerate(product(range(rows_x), range(rows_y))):
print('row {}: {} + {}'.format(i, x[x_id, ], y[y_id, ]))
z[i, ] = x[x_id, ] + y[y_id, ]
print('\nz:\n{}'.format(z))
返回:
x:
[[0 1]
[2 3]
[4 5]
[6 7]],
y:
[[0 1]
[2 3]]
for loop:
row 0: [0 1] + [0 1]
row 1: [0 1] + [2 3]
row 2: [2 3] + [0 1]
row 3: [2 3] + [2 3]
row 4: [4 5] + [0 1]
row 5: [4 5] + [2 3]
row 6: [6 7] + [0 1]
row 7: [6 7] + [2 3]
z:
[[ 0. 2.]
[ 2. 4.]
[ 2. 4.]
[ 4. 6.]
[ 4. 6.]
[ 6. 8.]
[ 6. 8.]
[ 8. 10.]]
但是,我不知道如何在 tensorflow 中实现类似的东西。
我主要通过 SO 和 tensorflow API 希望找到一个可以产生两个张量元素组合的函数,或者一个可以给出张量元素排列的函数,但无济于事。
欢迎提出任何建议。
【问题讨论】:
标签: python numpy tensorflow