我可以使用张量作为列表索引吗?

马克西姆

我有这个自定义 Keras 层,它可以在列表元素之间进行选择,例如 Dense 层,我希望它直接返回它预测的列表元素。该列表是Keras.layers.Layer. 我有这段代码:

def call(self, inputs, context):   
    pred = tf.argmax(tf.matmul(context, self.kernel))
    return self.layers[pred](inputs)

它抛出一个错误:TypeError: list indices must be integers or slices, not Tensor,这是可以理解的,但我找不到让它工作的方法。“pred” Tensor 没有.numpy属性,尽管我正在急切地运行程序,因为在构建层时会发生这种情况。

我知道可能没有解决方案,如果是这样,请提交有关如何以另一种方式对该层进行编码的想法。

丹尼尔·默勒

有一个更大的问题。

该层将不起作用,因为您无法获得 的导数argmaxkernel将无法训练。你会收到一条错误消息,比如“一个操作没有梯度”

作为一种解决方法,我建议您:

  • 1:计算所有层(希望它们具有相同的形状?)
  • 2:将他们的结果堆叠在第二维中: tf.stack([listf_of_outputs],axis=1)
  • 2:取asoftmax的结果matmul
  • 3:将结果重塑为softmax与上面堆叠结果相同的维数:shape(-1, number_of_layers, _other_dims_if_exist, 1)
  • 4:将*堆叠结果乘以(元素方式)重塑后的 softmax 并对轴 1 求和。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以使用逻辑索引或索引列表对张量进行切片吗?

我可以使用集合类型作为数组索引吗?

我可以使用js变量作为mvc数组的索引吗?

我可以使用数组作为索引切片numpy数组吗?

我可以使用非日期类型作为Julia中TimeSeries对象的时间索引吗?

为什么我可以使用 True 或 False 作为列表的索引?

大熊猫可以使用列作为索引吗?

可以使用元组索引找到列表的长度吗?

我可以使用索引提高此请求的效率吗?

反应:我可以使用名为“索引”的道具吗

我可以使用flutter在Firestore上创建索引吗?

我可以使用HTML元素作为对象键吗?

我可以使用Mypy存根作为接口吗?

我可以使用枚举作为结构名称吗?

我可以使用cd ../ ..作为别名吗?

我可以使用相同的dbcontext作为ASP身份吗

我可以使用 IEnumerator 作为更新函数吗?

我可以使用Apache Camel作为ESB吗?

我可以使用Aerospike作为持久层吗

我可以使用元组作为映射的键吗?

我可以使用VARCHAR作为主键吗?

我可以使用void *作为函数的参数吗?

我们可以使用类作为标题吗

我可以使用反向迭代器作为 ForwardIt 吗?

Neo4j密码:我可以使用标量函数作为索引表达式吗?

我们可以使用boost :: multi_index :: multi_index_container作为多索引映射吗?

我们可以使用javascript获取安装在浏览器中的搜索引擎列表吗?

我可以使用此列表来填充Arrayadapter吗?

我可以使用 Python 按键减少元组列表吗?