问题描述
我需要将池化模块输入到LSTM解码器,然后使用定制层构造该模块,并将编码器LSTM状态和Keras输入层作为输入。在此自定义层中,我需要分散对索引的更新:
updates: <tf.Tensor --- shape=(None,225,5,32) dtype=float32>
indices: <tf.Tensor --- shape=(None,225) dtype=int32>
使用tf.scatter_nd
创建一个具有shape = {None,960,5,32)的张量,如下所示:
tf.scatter_nd(tf.expand_dims(indices,2),updates,shape=[None,960,32])
但是问题在于这样做会由于形状为nonetype而引起错误,并且我不想在其中声明batch_size
,因为它是Keras层并且只能在学习过程中确定。在这种状态下,代码的工作版本是这样的:
tf.scatter_nd(tf.expand_dims(indices,shape=[960,32])
>>> <tf.Tensor 'ScatterNd_4:0' shape=(960,32) dtype=float32>
已忽略输出中的batch_size。
有没有其他方法可以代替tf.scatter_nd
来构建所需的输出张量,还是可以使其正常工作?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)