Добавление скользящего окна поверх тензоров - PullRequest
0 голосов
/ 09 ноября 2018

Я использую 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, чтобы превратить тензор в массивный массив, но есть ли лучший / более простой способ выполнить эту задачу?

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