对不起,如果我搞砸了标题,我不知道该如何表达。无论如何,我有一组值的张量,但我想确保张量中的每个元素的范围都在 0 - 255 之间(或者 0 - 1 也有效)。但是,我不想像 softmax 那样让所有值加起来等于 1 或 255,我只想缩小值。
有什么办法吗?
谢谢!
原文由 agupta231 发布,翻译遵循 CC BY-SA 4.0 许可协议
对不起,如果我搞砸了标题,我不知道该如何表达。无论如何,我有一组值的张量,但我想确保张量中的每个元素的范围都在 0 - 255 之间(或者 0 - 1 也有效)。但是,我不想像 softmax 那样让所有值加起来等于 1 或 255,我只想缩小值。
有什么办法吗?
谢谢!
原文由 agupta231 发布,翻译遵循 CC BY-SA 4.0 许可协议
根据维基百科中的 特征缩放,您还可以尝试 Scaling to unit length:
可以使用这段代码来实现:
In [3]: a = tf.constant([2.0, 4.0, 6.0, 1.0, 0])
In [4]: b = a / tf.norm(a)
In [5]: b.eval()
Out[5]: array([ 0.26490647, 0.52981293, 0.79471946, 0.13245323, 0. ], dtype=float32)
原文由 Lerner Zhang 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答989 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
您正在尝试规范化数据。一个经典的归一化公式是这样的:
tensorflow 上的实现如下所示:
张量的所有值都将介于 0 和 1 之间。
重要提示:确保张量具有浮点/双精度值,否则输出张量将只有零和一。如果你有一个整数张量,请先调用它:
更新:从 tensorflow 2 开始,
tf.to_float()
已被弃用,而是应该使用tf.cast()
: