gpt4 book ai didi

python - 如何在tensorflow中将一片占位符张量添加到1?

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:07 24 4
gpt4 key购买 nike

为了获得 oneHot 编码,我使用了这段代码:

self.Y = tf.placeholder(tf.int32, [None, 1])
self.YY=tf.one_hot(self.Y,depth=5) gives us

给定 y=2,它给出 [0 0 1 0 0]。

现在我想要一个像 onehot 的编码,但是在索引 y 之后是所有的编码。例如,给定 y=2 那么它应该给出 [0 0 1 1 1]。

顺便说一下,我不想在 tensorflow 之外执行此操作。

最佳答案

您可以使用 tf.range()函数返回一个整数序列直到你的最大值然后使用 <=比较以计算出您想要的结果。

例如,对于您示例中的张量,[2] ,我们可以这样做:

tf.cast(Y <= tf.range(5),tf.int32)

产生所需的结果:[0,0,1,1,1] .

它还以我们期望的方式“广播”一批值。假设批量大小为 5,所以你有一个 batch_Y值(value)类似于:[[1], [0], [1], [4], [2]]然后:

tf.cast(batch_y <= tf.range(5),tf.int32)

产生正确的输出:

[[0, 1, 1, 1, 1],
[1, 1, 1, 1, 1],
[0, 1, 1, 1, 1],
[0, 0, 0, 0, 1],
[0, 0, 1, 1, 1]]

关于python - 如何在tensorflow中将一片占位符张量添加到1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57341646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com