Дайте тензор left[N,2], right[N,2], Mask[1,N], мне нужен быстрый метод для присвоения значения строки слева на основе некоторого условия значений справа, применяя маска для обоих, например:
left =
[[0.9, 0.8],
[0.3, 0.0],
[0.6, 0.9],
[0.7, 0.0],
[0.6, 0.8],
[0.6, 0.2],
[0.6, 0.2]]
маска =
[ True, True, False, True, False, False, True]
справа =
[[ 1., 3.],
[ 1., 5.],
[ 7., 0.],
[11., 13.],
[17., 19.],
[21., 1. ],
[ 1., 13.]]
и c1 = [1,3,5] и c2 = [11, 13]. Итак, фильтруя слева и справа по маске, если строка справа имеет обе записи либо в c1, либо обе в c2, то соответствующая строка слева должно быть [0, 1], если нет, то [1, 0]. Он применяется в прямом методе, поэтому мне нужен быстрый и эффективный способ сделать это, отличный от цикла for.
так что это должно быть что-то вроде этого, но это не работает:
left[mask] = torch.tensor([0, 1]) if (right[mask][0] in c1 and right[mask][1] in c1) or ( right[mask][0] in c2 and right[mask][1] in c2) else torch.tensor([1,0])
Подробнее здесь: https://stackoverflow.com/questions/783 ... -condition
Как присвоить значения определенным строкам в тензоре на основе некоторого условия? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как присвоить значения определенным строкам в тензоре на основе некоторого условия?
Anonymous » » в форуме Python - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Невозможно получить все строки из CSV на основе значения некоторого столбца [дубликат]
Anonymous » » в форуме Python - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-