布尔型掩码或十进制稀疏点积

2024-05-16 03:19:09 发布

您现在位置:Python中文网/ 问答频道 /正文

太长了,读不下去了,是什么?在

我正在尝试在Tensorflow中implementsyntactic GCN。基本上,我需要为每个标签有一个不同的权重矩阵(让我们忽略这个问题的偏差),并在每次运行时选择要使用的相关条目,这些条目将由一个稀疏矩阵来选择(对于每个条目,在一个方向上最多有一个标签,而且大多数情况下没有边,所以即使这样也不行)。在

更具体地说,当我有一个标记边的稀疏矩阵(0 1),是在掩码中使用它更好,还是在稀疏稠密张量乘法中使用它,或者仅仅使用正规乘法(我想不是后者,而是为了简单起见,在示例中使用它)

示例:

    units = 6 # output size 
    x = ops.convert_to_tensor(inputs[0], dtype=self.dtype)
    labeled_edges = ops.convert_to_tensor(inputs[1], dtype=self.dtype)
    edges_shape = labeled_edges.get_shape().as_list()
    labeled_edges = expand_dims(labeled_edges, -2)
    labeled_edges = tile(
        labeled_edges, [1] * (len(edges_shape) - 1) + [units, 1])
    graph_kernel = math_ops.multiply(self.kernel, labeled_edges) # here is the question basically
    outputs = standard_ops.tensordot(x, graph_kernel, [[1], [0]])
    outputs = math_ops.reduce_sum(outputs, [-1])

Tags: self示例convert条目矩阵标签outputskernel
1条回答
网友
1楼 · 发布于 2024-05-16 03:19:09
为回答你的太长了,读不下去了,你可以试着用以下任一个:

  • ^{}:典型用法是tf.nn.embedding_lookup(params, ids)。它返回一个Tensor,该0轴条目是Tensor参数的子集。保留项的索引由Tensorid定义。

  • ^{}:与tf.nn.embedding_lookup相同,但取{}作为SparseTensor

相关问题 更多 >