我试图在tensorflow中定义一个自定义op,其中我需要构造一个矩阵(z),它将包含两个矩阵(x和y)的行对的所有组合的总和.一般情况下,行数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]], …我希望能够检查给定存储库的最新标签是什么(我在这里使用 CPython 作为示例)。
以下作品:
g = git.cmd.Git()
blob = g.ls_remote('https://github.com/python/cpython', sort='-v:refname', tags=True)
blob.split('\n')[0].split('/')[-1]  # 'v3.9.0a6'
因为blob看起来像这样:
'bc1c8af8ef2563802767404c78c8ec6d6a967897\trefs/tags/v3.9.0a6\ndcd4 (...)'
但是:有没有更干净的方法来获取最新标签?
最好使用gitpython但任何其他包也可以。