作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在没有任何就地操作的情况下有效地执行此操作?
n_id = np.random.choice(np.arange(2708), size=100)
z = np.random.rand(100, 64)
z_sparse = np.zeros((2708,64))
z_sparse[n_id[:100]] = z
z
的第 1 行应该放在行
n_id[0]
的
z_sparse
,然后是
z
的第 2 行应该在行
n_id[1]
的
z_sparse
, 等等...
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation
最佳答案
如 n_id
是固定索引数组,可以得到z_sparse
作为矩阵乘法:
# N, n, m = 2078,100, 64
row_mat = (n_id[:n] == np.arange(N)[:,None])
# for pytorch tensor
# row_mat = Tensor(n_id[:n] == np.arange(N)[:,None])
z_sparse = row_mat @ z
row_mat
是一个常量数组(张量),你的图应该可以正常工作。
关于python - 将 numpy 数组设置为切片而无需任何就地操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62076485/
我是一名优秀的程序员,十分优秀!