Как работает numpy трансляция в этом случае? - PullRequest
1 голос
/ 25 февраля 2020

Может кто-нибудь объяснить, как в этом случае работает numpy вещание?

a = np.ones((2,3))
b = np.ones((2,1,3))
c = a-b

a.shape
(2, 3)
b.shape
(2, 1, 3)
c.shape
(2, 2, 3)

Ответы [ 2 ]

3 голосов
/ 25 февраля 2020

Обращаясь к этой странице, он говорит, что numpy добавляет тензор с более низким рангом к 1 с, поэтому в этом случае у нас есть a.shape = [1,2,3]

Плитка a вдоль оси 1 для получения a.shape=[2,2,3]

плитки b вдоль оси 2 для получения b.shape=[2,2,3]

Если размеры одинаковы, вычтите

1 голос
/ 25 февраля 2020
  1. Добавить 1 к a.shape, поэтому a.shape -> (1,2,3)
  2. Растянуть a вдоль dim 1, чтобы соответствовать b. так что a.shape -> (2,2,3)
  3. Протяните b вдоль dim 2, чтобы соответствовать a. итак b.shape -> (2,2,3)
  4. Вычтите

Это то, что вы ищете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...