Jin*_*oss 2 python keras tensorflow activation-function
def newactivation(x):
if x>0:
return K.relu(x, alpha=0, max_value=None)
else :
return x * K.sigmoid(0.7* x)
get_custom_objects().update({'newactivation': Activation(newactivation)})
Run Code Online (Sandbox Code Playgroud)
我正在尝试在 keras 中为我的模型使用此激活函数,但是我很难找到要替换的内容
if x>0:
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
文件“/usr/local/lib/python3.4/dist-packages/tensorflow/python/framework/ops.py”,第 614 行,在bool raise TypeError(“不允许将 a
tf.Tensor作为 Pythonbool使用。”类型错误:不允许将 a
tf.Tensor用作 Pythonbool。使用if >t is not None:而不是if t:测试是否定义了张量,并且 > 使用 TensorFlow 操作(例如 tf.cond)执行以 > 张量值为条件的子图。
有人可以帮我说清楚吗?
if x > 0没有意义,因为x > 0是张量,而不是布尔值。
要在 Keras 中执行条件语句,请使用keras.backend.switch.
例如你的
if x > 0:
return t1
else:
return t2
Run Code Online (Sandbox Code Playgroud)
会成为
keras.backend.switch(x > 0, t1, t2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1742 次 |
| 最近记录: |