Я пытаюсь создать многомерный массив размером n
(где n
является частью тензора символьной формы).Этот массив должен иметь 0
в каждом регионе, но немногие, где он будет переменной b_class
.
Вот простая реализация Numpy
этого, но в этом случае наш массив будет иметь фиксированный размер 100
вместо тензора:
import numpy as np
index_array = [10, 99, 50, 70]
n = 100
zero_array = np.zeros(100)
for b_class in range(0, 4):
zero_array[index_array[b_class]] = b_class # every class position is defined by index_array
print(zero_array)
Это прекрасно работает для определенных констант, но в нашем случае n
- тензор, поэтому index_array
, поэтому zero_array = K.zeros((n))
, где K
- Keras.backend
и, следовательно, присвоение значений в "Pythonic" манере приведет к ошибке:
TypeError: объект 'Tensor' не поддерживает назначение элементов в TensorFlow
Вопрос
Я хочу найти способ реплицировать код только в бэкэнде на основе Keras без использования tf.Variable
и tf.SparseTensor
, чтобы он был полностью совместим с Keras.
Есть ли способ выполнить простую задачу присвоения значений разреженному тензору по определенным индексам с помощью только векторизованных операций?
Спасибо!