小编zwe*_*wep的帖子

使用numpy方法修改(keras / tensorflow)张量

我要执行特定操作。即从一个矩阵:

A = np.array([[1,2],
            [3,4]])
Run Code Online (Sandbox Code Playgroud)

到以下

B = np.array([[1, 0, 0, 2, 0, 0],
              [0, 1, 0, 0, 2, 0],
              [0, 0, 1, 0, 0, 2],
              [3, 0, 0, 4, 0, 0],
              [0, 3, 0, 0, 4, 0],
              [0, 0, 3, 0, 0, 4]])
Run Code Online (Sandbox Code Playgroud)

换句话说:将每个条目乘以单位矩阵并保持相同的顺序。现在,我使用以下代码通过使用numpy来完成此操作。这里NM是起始矩阵的维数,并且单位矩阵的维数。

l_slice = 3
n_slice = 2
A = np.reshape(np.arange(1, 1+N ** 2), (N, N))
B = np.array([i * np.eye(M) for i in A.flatten()])
C = B.reshape(N, N, M, M).reshape(N, N * …
Run Code Online (Sandbox Code Playgroud)

python numpy keras tensorflow

5
推荐指数
1
解决办法
296
查看次数

炬管挤压和批次尺寸

这里有没有人知道该torch.squeeze函数是否尊重批次(例如第一)维度?从一些内联代码来看,它似乎没有......但也许其他人比我更了解内部工作原理。

顺便说一句,潜在的问题是我有 shape 的张量(n_batch, channel, x, y, 1)。我想用一个简单的函数删除最后一个维度,这样我最终会得到一个(n_batch, channel, x, y).

重塑当然是可能的,甚至可以选择最后一个轴。但我想将此功能嵌入到一个层中,以便我可以轻松地将它添加到一个ModuleListSequence对象中。

编辑:刚刚发现对于 Tensorflow (2.5.0) 函数tf.linalg.diag确实尊重批次维度。仅供参考,您使用的每个功能可能会有所不同

torch pytorch

4
推荐指数
1
解决办法
2889
查看次数

标签 统计

keras ×1

numpy ×1

python ×1

pytorch ×1

tensorflow ×1

torch ×1