Я использую tenorflow для построения модели. У меня есть тензор t1 = [a, b, c, x], а другой t2 = [a, b, c, y]. х всегда будет кратным у. Я хочу скользить t2 через t1 и с интервалом y. Вот мой код:
def elementwise_add(dense, transition):
#other will always have less dims that dense
dim_dense = int(dense.shape[-1])
dim_transition = int(transition.shape[-1])
iters = dim_dense // dim_transition
dense_shape = [int(x) for x in dense.shape]
output = np.zeros((dense_shape[0], dense_shape[1], dense_shape[2],
dense_shape[3]))
counter = 0
dense = dense.numpy()
transition = transition.numpy()
for i in range(iters):
output[:,:,:,counter:counter+dim_transition] =
np.add(dense[:,:,:,counter:counter+dim_transition], transition)
counter = counter + dim_transition
return tf.convert_to_tensor(output)
Проблема в том, что я хотел выполнить все операции в numpy и преобразовать результат обратно в тензор, поэтому я подумал, что могу просто привести плотное и перейти к массивам numpy и сделать это, но это не так просто, как .numpy (). Как лучше всего решить эту задачу? Я видел, что вы можете запустить sess и использовать eval, чтобы превратить тензор в массивный массив, но есть ли лучший / более простой способ выполнить эту задачу?