gpt4 book ai didi

machine-learning - 如何替换张量中的值?

转载 作者:行者123 更新时间:2023-11-30 09:51:07 25 4
gpt4 key购买 nike

我将图像读取为张量对象,其目的是作为掩模。

现在,我想用 0 替换接近白色(几乎 1.0)的值和灰色到 1 的值。

那么这个掩码对于我的机器学习任务来说是正确的。

我已经尝试过:

tf.where(imag >= 1.0) 

或者下一个函数也返回索引

greater = tf.greater_equal(mask, 0.95)

但是如何更新/分配0呢? scatter_nd_add 对我不起作用。

mask = tf.scatter_nd_add(mask, greater, 0)
<小时/>

编辑:

我尝试了不同的方法:

v_mask = tf.Variable(tf.shape(mask))
ind = tf.to_float(mask >= 0.0)
v_mask.assign(ind)

但是如果我运行 session 。它停在那里并且不会继续。

我真正想做的事:我有一个尺寸为(mxnx1,张量,float32)的灰色图像,并且值被重新调整为从 [0,255] 到 [0,1]。

我想用 0 替换所有白色 (1) 值,用 1 替换灰色 (0.45 - 0.55) 值,其余值应该是未定义的。

最佳答案

要对图像进行阈值处理,您可以使用:

thim = tf.tofloat(im >= 0.95) # or to whichever type you use

要将结果重新分配给 im假设它是一个变量:

im_update = im.assign(thim)

这为您提供了一个更新操作,您需要调用该操作才能进行更新。

如果 im 不是变量,则无法为其重新赋值。但一般来说,真正需要为节点重新分配值的情况很少见。

关于machine-learning - 如何替换张量中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45014464/

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