我正在尝试在Keras中编写自己的图层,在该图层中,我需要将输入张量乘以权重张量,并将可训练值的指数衰减。我正计划将价值创建为权重,然后“以某种方式”扩展它。
在python中,我将这样做:
d = 0.9
window = 6
w = np.array([pow(d, window-j) for j in range(window)])
w = w / w.sum()
输出:
In [63]: w
Out[63]:
array([0.12602255, 0.14002506, 0.1555834 , 0.17287044, 0.19207827,
0.21342029])
我看到有tf.while_loop
可能会有所帮助,但是我如何从Keras调用tensorflow?
答案 0 :(得分:0)
好吧,我想我明白了,这似乎可以编译。
# expand the kernel to the size of x
w = [K.pow(self.kernel, self.kernel_size-j) for j in range(self.kernel_size)]
w = K.concatenate(w)
# normalise
w = w / K.sum(w)
w = K.expand_dims(w)
print(K.get_value(w))
w = K.tile(w, (batch_size, 1, self.rank))