在张量上添加滑动窗口

时间:2018-11-09 02:57:52

标签: python numpy tensorflow machine-learning

我正在使用tensorflow建立模型。我有一个张量t1 = [a,b,c,x]和另一个t2 = [a,b,c,y]。 x将始终是y的倍数。我想在t1上以y的间隔滑动t2。这是我的代码:

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将张量转换为numpy数组,但是有没有更好/更容易的方法来完成此任务?

0 个答案:

没有答案