我有一个像这样的训练模型
Y = w * X + b
其中 Y 和 X 是输出和输入占位符,w 和 b 是向量
我已经知道w的值只能是0或1,而b仍然是tf.float32。
当我定义变量 w 时,如何量化它的范围?
or
我可以有两个不同的学习率吗?像往常一样,w 的比率为 1 或 -1,b 的比率为 0.0001。
在激活期间无法限制您的变量。但你可以做的是在每次迭代后限制它。这是执行此操作的一种方法tf.where() https://www.tensorflow.org/api_docs/python/tf/where:
import tensorflow as tf
a = tf.random_uniform(shape=(3, 3))
b = tf.where(
tf.less(a, tf.zeros_like(a) + 0.5),
tf.zeros_like(a),
tf.ones_like(a)
)
with tf.Session() as sess:
A, B = sess.run([a, b])
print A, '\n'
print B
这会将 0.5 以上的所有内容转换为 1,将其他内容转换为 0:
[[ 0.2068541 0.12682056 0.73839438]
[ 0.00512838 0.43465161 0.98486936]
[ 0.32126224 0.29998791 0.31065524]]
[[ 0. 0. 1.]
[ 0. 0. 1.]
[ 0. 0. 0.]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)