Geo*_*son 5 python keras tensorflow
我需要更改张量的某些元素的值。我知道什么元素-它们已经在布尔张量中了。
我看不到如何在keras代码中执行此操作。但是如果我使用TensorFlow代码,我会做这样的事情:
在python numpy中,代码如下所示:
x = np.zeros_like(sometensor)
x[sometensor>0.5] = 1.0
Run Code Online (Sandbox Code Playgroud)
在Keras代码中(并且我正在使用TF后端),这是我的最佳尝试(不起作用):
encoder_outputs_bin = k.backend.zeros_like(encoder_outputs, name="encoder_outputs_bin")
point_five = k.backend.constant(0.5, shape=k.backend.shape(encoder_outputs), name="point_five")
positives = k.backend.greater_equal(encoder_outputs, point_five)
encoder_outputs_bin[positives].assign(tf.ones(1)) # TF syntax -- might not work in keras
Run Code Online (Sandbox Code Playgroud)
这个答案并不是真正的“分配”,它得到了另一个张量,但我相信它会做......
此外,您打算做的事情将完全破坏这些元素的反向传播。
知道这一点:
positives = k.backend.greater_equal(encoder_outputs, 0.5)
positives = k.backend.cast(positives, k.backend.floatx())
encoder_outputs = positives + ((1-positives)*encoder_outputs)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1835 次 |
| 最近记录: |