tf.clip_by_value 限制在两个矩阵/张量之间的用法

匿名 (未验证) 提交于 2019-12-03 00:22:01

我们都知道tf.clip_by_value(A, min, max)可以实现将张量A中元素限制在两个值之间。
即输入一个张量A,把A中的每一个元素的值都压缩在min和max之间。小于min的让它等于min,大于max的元素的值等于max。

可是我想要实现将张量A中的元素每个位置都使用不同的取值范围,即把张量限制在两个极值张量之间代码如下:

import tensorflow as tf import numpy as np  A=np.arange(12).reshape((3,4)) B=np.array([[1,2,3,4],             [1,2,3,4],             [1,2,3,4]]) C=np.array([[9,9,9,9],             [9,9,9,9],             [9,9,9,9]]) print('A:\n',A) print('B:\n',B) print('C:\n',C)  with tf.Session() as sess:     print('result:\n',sess.run(tf.clip_by_value(A, B, C)))

输出如下:

A:  [[ 0  1  2  3]  [ 4  5  6  7]  [ 8  9 10 11]] B:  [[1 2 3 4]  [1 2 3 4]  [1 2 3 4]] C:  [[9 9 9 9]  [9 9 9 9]  [9 9 9 9]] result:  [[1 2 3 4]  [4 5 6 7]  [8 9 9 9]]

这样我们得到的结果A中元素的大小被限制在B和C张量对应位置的值之间。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!