Обходной путь для неспособности тензорного потока назначать нетерпеливые тензорыPython

Программы на Python
Ответить
Anonymous
 Обходной путь для неспособности тензорного потока назначать нетерпеливые тензоры

Сообщение Anonymous »

Тензоры Eager не поддерживают присваивание. Мне нужно выполнить задание.

a = tf.convert_to_tensor(np.random.choice(10, size = 12).reshape(3,4))
b = tf.convert_to_tensor(np.array([2,3]))
a[:,b] *= -1
Traceback (most recent call last):

File "", line 3, in
a[:,b] *= -1

File "/opt/anaconda3/envs/covid_timeseries/lib/python3.7/site-packages/tensorflow_core/python/ops/array_ops.py", line 777, in _slice_helper
_check_index(s)

File "/opt/anaconda3/envs/covid_timeseries/lib/python3.7/site-packages/tensorflow_core/python/ops/array_ops.py", line 666, in _check_index
raise TypeError(_SLICE_TYPE_ERROR + ", got {!r}".format(idx))

TypeError: Only integers, slices (`:`), ellipsis (`...`), tf.newaxis (`None`) and scalar tf.int32/tf.int64 tensors are valid indices, got


Здесь есть предложение по обходному пути:

new = original * mask + other * (1 - mask)


У меня возникли проблемы с этой работой, потому что я не могу найти способ создать маску, которая сама по себе не требует присвоения!

Я был бы очень признателен за некоторые рекомендации, которые помогли бы мне реализовать этот высокоуровневый подход, возможно, что-то вроде этого:

def tf_assign_workaround(tensor, index, newvals):
??
return tensor_with_index_assigned_to_newvals


РЕДАКТИРОВАТЬ: вот исходный, более простой пример

a = tf.convert_to_tensor(np.random.choice(10, size = 12).reshape(3,4))
a[:,1] *= -1
Traceback (most recent call last):

File "", line 2, in
a[:,1] *= -1

TypeError: 'tensorflow.python.framework.ops.EagerTensor' object does not support item assignment
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»