当张量的第一维未知时(在keras.layers.Layer中),tensorflow通过索引分配2D张量的值。

时间:2018-10-04 07:42:08

标签: python tensorflow keras

我正在实现一个keras层,其call函数需要实现按索引分配的2D Tensor值。 python numpy演示了该功能,如下所示:

import numpy as np
A = np.arange(12).reshape(6,2)
ind_x = [2,4,5]
ind_y = [0,1,0]
A[(ind_x,ind_y)] = -1 # assign value 
A = array([[ 0,  1],
           [ 2,  3],
           [-1,  5],
           [ 6,  7],
           [ 8, -1],
           [-1, 11]])

如果A.shape = (6,2)可用,那么tf.SparseTensor就是完美的选择。

但是,在我的情况下,A是keras.layers.Layer的输入,因此在图形构建期间不确定其第一维(即批处理大小)。最后,A.shape = (None,2)。还有其他的张量流功能可以实现吗?谢谢。

P.S。提出了完整的keras实现here的问题。但是,我认为这里的问题可能更清楚,更基础。

0 个答案:

没有答案